标签 Gentoo 下的文章

一. 制作启动盘 因为提前下载好了 stage3, 所以直接把 stage3 做到镜像里面去, 首先打包stage3相关文件, tar -cvf stage3.tar stage3 然后挂载镜像 mount -o rw xxx.iso /mnt/gentoo , 然后追加文件 mkisofs -o ~/new.iso /mnt/gentoo ~/stage3*, 这样就得到了一个包含stage3的镜像. 但是我发现这样是启动不了的. 所有我后来先建立一个文件夹 gentoo, 然后把镜像里面的所有内容复制到gentoo里面,再把 stage3 也复制到 gentoo 里面. 然后 mkisofs -o gentoonew.iso -J -r -v -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "Gentoo_amd64_stage_20170105" gentoo 这样就作出了一个新的镜像. mkisofs

来自: mmkisofs

来自:

因为我笔记本是双硬盘,所以我的U盘是 /dev/sdc1, 使用dd指令, dd if=xxx.iso of=/dev/sdc bs=1M. 这样就得到一个包含了 stage3 的启动盘. 注意这边用sdc 而不是 sdc1.

但是老是提示我没有可用空间了, 然后我才发现我的U盘是山寨的, 8G 硬盘 只有480M可用.

然后我重新找了个U盘, 先用WIN 下面的 ultraiso 来做一个包含 stage3 的启动U盘. 然后使用这个启动盘启动进入系统.

二: 配置网络 配置WPA的无线网络, 首先使用 ifconfig 查看自己的无线网卡名是什么, 比如说 xxx 然后

vi /etc/conf.d/net
modules="wpa_supplicant"
wpa_supplicant_xxx="-Dwext"
config_xxx="dhcp"
vi /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="yyy"
psk="zzz"
proto=WPA
key_mgmt=WPA-PSK
group=CCMP
pairwise=CCMP
priority=2
}
ln -s /etc/init.d/net.lo /etc/init.d/net.xxx

/etc/init.d/net.xxx restart

ping 如果能够通了,那么无线网络设置就可以了.

三. 磁盘分区

parted -a optimal /dev/sda
mklabel gpt
unit mib

mkpart primary 1 3
name 1 grub
set 1 bios_grub on
mkpart primary 3 131
name 2 boot
mkpart primary 131 8323
name 3 swap
mkpart primary 8323 -1
name 4 rootfs

set 2 boot on
quit

这样磁盘就分好区了. SWPA 8G.

进行格式化

mkfs.ext2 /dev/sda2
mkfs.ext4 /dev/sda4

开启SWAP

mkswap /dev/sda3
swapon /dev/sda3

挂载硬盘

mount /dev/sda4 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda2 /mnt/gentoo/boot
date

解压 stage3

cd /mnt/gentoo
cp -rf /mnt/cdrom/stage ./
tar xvjpf stage3*.tar.bz2

四. 设置portage 设置 portage

vi ./etc/portage/make.conf
CFLAGS="-march=native -O2 -pipe"
MAKEOPTS="-j3"

选择镜像, 注意使用空格选择, 我选择了163. 这步骤如果没有选择,后面可以手动在 文件中加入 GENTOO_MIRRORS的变量来指定镜像.

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
mkdir /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
cp -L /etc/resolv.conf /mnt/gentoo/etc/

五. chroot

mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

六. 使用新的配置更新系统 emerge-webrsync eselect profile list eselect profile set 3 选择 desktop emerge --ask --update --deep --newuse @world 这会花费非常多的时间,这边可以先不选择 desktop, 先把系统跑起来之后,再选择 desktop 然后更新.

七. 设置时间 ls /usr/share/zoneinfo/Asia echo "Asia/Shanghai" > /etc/timezone emerge --config sys-libs/timezone-data vim /etc/locale.gen

en_US ISO-8859-1 en_US.UTF-8 UTF-8 zh_CN GBK zh_CN.UTF-8 UTF-8

local-gen

eselect locale list 这里为了以后查资料方便,所以选择的是英文环境 en_US.utf8 eselect locale set 5

env-update && source /etc/profile && export PS1="(chroot) $PS1"

八. 编译内核 下载源码 emerge --ask sys-kernel/gentoo-sources 下载一个生成 initramfs工具 emerge --ask sys-kernel/genkernel

配置fstab vim /etc/fstab /dev/sda2 /boot ext2 defaults 0 2

因为手动配置内核很难保证一次完美,为了安装方便,第一次使用genkernel,后面有时间再手动慢慢来调教内核. genkernel all

关于模块, 暂时先不加载模块, 后面再调整. find /lib/modules// -type f -iname '.o' -or -iname '.ko' | less vim /etc/conf.d/modules

按照驱动 emerge --ask sys-kernel/linux-firmware

九.配置fstab 查看分区标签 blkid

( 这个地方有错误, 这个错误导致了后面不能读写的问题, 具体在本文后面有叙述.) vim /etc/fstab LABEL=boot /boot ext2 noauto,noatime 0 2 LABEL=swap none swap sw 0 0 LABEL=rootfs / ext4 noatime 0 1

十.配置网络 (后来发现这一个步骤没有按照无线网卡软件, 也没有对无线网卡参考开头进行相应的配置, 导致了后面的问题.) vim /etc/conf.d/hostname hostname="xxx"

vim /etc/conf.d/net dns_domain_lo="xxx"

emerge --ask --noreplace net-misc/netifrc ifconfig 查看现在的网卡名称 vim /etc/conf.d/net config_xxx="dhcp"

配置网络自启动 cd /etc/init.d ln -s net.lo net.xxx rc-update add net.xxx default

vim /etc/hosts 127.0.0.1 xxx.xxx xxx xxx

十一. 设置密码和启动 passwd

设置启动 vim /etc/rc.conf vim /etc/conf.d/keymaps 默认的 us 键盘就可以 vim /etc/conf.d/hwclock 默认的UTC就很好.

十二. 系统工具 系统log emerge --ask app-admin/sysklogd rc-update add sysklogd default

文件系统 emerge --ask sys-fs/dosfstools emerge --ask sys-fs/ntfs3g

DHCP emerge --ask net-misc/dhcpcd

十三. 系统引导 配置GRUB echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf emerge --ask --update --newuse --verbose sys-boot/grub:2 emerge --ask --newuse sys-boot/os-prober 让grub 能够检测到其他的系统

ls /boot 查看/boot分区有没有加载 emerge --ask --verbose parted 安装分区软件 parted print 检查 boot 分区有没有 bios grub, 没有就用下面这条设置,有的话就跳过. (parted)set 1 bios_grub on

grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg

十四. 准备重启( 这时候我犯了一个大错误, 没有安装无线网卡的软件, 并且对网络进行配置, 这时候应该安装软件,并且参考开头部分对网络进行相应的设置) emerge --ask --verbose livecd-tools emerge --ask --verbose mirrorselect

exit cd umount -l /mnt/gentoo/dev{/shm,/pts,} umount -R /mnt/gentoo reboot

十五. 重启能够进入系统, 发现不能上网, 重新 chroot, 然后安装 wpa_supplicant vi /etc/conf.d/net modules="wpa_supplicant" wpa_supplicant_xxx="-Dwext" config_xxx="dhcp"

vi /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="yyy" psk="zzz" proto=WPA key_mgmt=WPA-PSK group=CCMP pairwise=CCMP priority=2 }

ln -s /etc/init.d/net.lo /etc/init.d/net.xxx

/etc/init.d/net.xxx restart

ping 如果能够通了,那么无线网络设置就可以了.

挂载硬盘 mount /dev/sda4 /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda2 /mnt/gentoo/boot

chroot mount -t proc proc /mnt/gentoo/proc mount --rbind /sys /mnt/gentoo/sys mount --make-rslave /mnt/gentoo/sys mount --rbind /dev /mnt/gentoo/dev mount --make-rslave /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash source /etc/profile export PS1="(chroot) $PS1"

emerge --ask --verbose wpa_supplicant

vim /etc/conf.d/net modules="wpa_supplicant" wpa_supplicant_xxx="-Dwext"

vim /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="yyy" psk="zzz" proto=WPA key_mgmt=WPA-PSK group=CCMP pairwise=CCMP priority=2 }

exit cd umount -l /mnt/gentoo/dev{/shm,/pts,} umount -R /mnt/gentoo reboot

十六. 出大事情了. 不能写入硬盘 再次进入系统,发现硬盘上面的文件都不能写入, 错误是 EXT2的错误, 错误码 (2c0) 经过一段时间的排查, 发现是 fstab 里面的问题, 我这个系统里面必须写 /dev/sda4 这种模式, 不要用 LABEL=rootfs 这种模式. 修改之后重启就没有问题了.

十七. 双硬盘, 双系统

grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg 在显示的信息里面能够看到 grub发现了WIN7, 并且加入了启动选项. 重启, 选择WIN7, 顺利进入, 一切正常.

十八. 普通用户 useradd -m -G users,wheel,audio -s /bin/bash xxx passwd xxx

到此, 整个安装过程结束. 达到了第一阶段完成. 后面就是 portage 之类的事情了.

linux 下面的pdf 浏览器虽然很多,但是很多都是只能看,不能加书签,不能在pdf上面记录醒目的笔记等等。 okular则是把 书签,笔记等等作为xml另外保存。 所以只好使用 wine 来搞定了。

首先去 pdf xchange viewer 官网下面 portage 版本,然后解压。把解压出来的文件放入 ~/wine/opt/pdfxcv/. 然后建立一个脚本文件

!/bin/bash

FILENAME="z:{1//\//\\}" wine "/home/username/software/pdfxcv/PDFXCview.exe"FILENAME

在给脚本文件,执行权限,然后添加目录到 PATH中。

这样就可以直接用命令行调用了,当然也可以使用 obmenu 来把命令放入桌面右键菜单中去。

首先要配置好内核的无线,然后才能使用配置无线。

emerge --verbose wpa_supplicant

然后修改 vim /etc/conf.d/net modules_wlan0="wpa_supplicant" wpa_supplicant_wlan0="-Dwext" config_wlan0="dhcp"

然后在相应的文件夹下面找到默认的配置文件 /usr/share/doc/wpa_supplicant××××××/×××××××.bz2 bzip2 -d /usr/share/doc/wpa_supplicant-/wpa_supplicant.conf.bz2 解压并放入/etc/wpa_supplicant/wpa_supplicant.conf 在修改这个文件 ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel update_config=1

然后使用 先用 ifconfig wlan0 up 来开启wlan0 然后在 iwlist wlan0 scanning 来扫描无线网,得到自己的无线网的属性 在参照 wpa_supplicant.conf 中的例子来写自己的配置 network={ ssid="xxx" psk="xxx" ... ... }

添加网卡的开机启动: ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0 rc-update add net.wlan0 default

然后就可以启动无线了 /etc/init.d/net.wlan0 restart

注意使用无线的时候最好关闭有线 ifconfig eth0 down,不然可能上不了网。

在Linux 环境下进行avr开发还是很简单的。 首先去 atmel 官网上面下载工具链 地址是 别忘了下载下面的头文件。把工具链和头文件都解压以后,把头文件放入工具链所在文件夹下面的 include 文件夹下面就可以了。 然后不要忘了把工具链文件夹下面的bin文件夹加入 PATH 中。 这样就可以了。

jlinkgdbserver设置

点击eclipse菜单run–>external tools→external tools configurations. 新建一个jlinkgdbserver

location: /home/ptz/opt/jlink/JLink_Linux_V462a/JLinkGDBServer

如果你使用的是SWD模式,那么下面需要加上这个: arguments: -if SWD

build标签页取消 build before launch

debugger设置 eclipse debug 设置,如果没有 gdb hardware debugging,那么首先要安装这个插件 如果有这个插件,那么 run->debug configurations->gdb hardware debugging 新建一个 main标签页 c/c++ app: 选择生成的调试文件 project: 工程名

debugger 标签页 gdb command: 选择arm-none-eabi-gdb use remote: jtag->tcp/ip, host name:localhost, port number: 2331

startup 标签页 init commands:

monitor flash device = STM32L152VB monitor interface SWD monitor flash download = 1 monitor flash breakpoints = 1 monitor clrbp monitor endian little monitor speed 5 monitor reset monitor sleep 100 monitor speed auto monitor writeu32 0xE000ED08 = 0x00000000

run commands:

monitor reg r13 = (0x00000000) monitor reg pc = (0x00000004) break ResetHandler break main continue

这样就配置完成了,需要调试的时候,首先先运行jlinkgdb,然后在运行debugger就可以了。 不过有需要注意的是jlinkgdbserver不会自己退出,如果需要使用jlinkflash,那么需要手动 kill jlinkgdbserver 这个进程

开启jlink,连接成功了以后 ./JLinkExe

设置写入的芯片 exec device=STM32L152VB

下载程序,注意这里的hex文件必须是bin编码的。 loadbin stm32l/Debug/stm32l152vb-gpio.hex 0x08000000

芯片复位 r

芯片运行 g

linux 上面的office软件用起来不是很顺手,所以就想到了wps-linux 系统是gentoo

vim /etc/portage/package.accept_keywords

required by wps-office (argument)

=app-office/wps-office-9.1.0.4032_alpha10 ~x86

vim /etc/portage/package.use

wps-office

app-office/wps-office corefonts

然后 emerge --verbose wps-office

等待安装完成

这时候就已经可以启动wps了,不过会提示缺少字体,可以去
下载相应的字体,或者下载下面的附件,然后解压放入 ~/.fonts/wps_symbol_fonts/

这样就可以了

gentoo 上面搞定了 x server,就可以搞 gnome 了

修改 make.conf

USE="-qt4 -kde X dbus gtk gnome"

echo "gnome-base/gnome-session branding" >> /etc/portage/package.use

编译gnome大约要9个多小时

emerge gnome

env-update && source /etc/profile

/etc/init.d/dbus start

rc-update add dbus default

echo "exec gnome-session" > ~/.xinitrc

sed -i '1i\export XDG_MENU_PREFIX=gnome-' ~/.xinitrc

按照教程,添加 nsplugin USE 标记给gnash,有了这个标记才能集成到浏览器中去 www-plugins/gnash nsplugin 然后 emerge nsplugin

但是发现 aurora 还是看不了 视频。

所以我使用了 adobe-flash, emerge adobe-flash 安装了这个以后,终于可以看视频和网上的百度文档了。

先按照WIKI修改USE, app-emulation/wine fontconfig gecko gstreamer jpeg mp3 png truetype alsa -oss X nls opengl xcomposite udisks -custom-cflags -test threads win32

然后在 emerge --verbose wine 然后在下载脚本 wget

chmod u+x winetricks

移动到 ~/bin 下面

vim ~/.bashrc PATH="/home/xxx/bin:$PATH"

运行来安装库 winetricks msxml6 gdiplus riched20 riched30 ie6 vcrun6 vcrun2005sp1 flash 注意如果报校验错误的话,可以直接使用 wine 绝对路径的方法来安装某些库。 ie6可能需要找其他的地址来下载安装,自带的地址实在是太慢了。

这边下载一个字体文件放到 ~/.wine/dosdevices/c:/windows/Fonts 下面

打开 Wine 的注册表(直接在终端输入 regedit 即可,界面和windows注册表一样),按照找到下面得地方修改即可,没有的项目手动建立字符串就可以了。

打开[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]

  MS Shell Dlg = SimSun

  MS Shell Dlg 2 = SimSun

  Tahoma = SimSun (这个没有,需要手动新建字符串)

现在就可以开始安装QQ了。 安装完了以后也没有问题。

附录:

字体设置

在使用UTF-8为Locale的系统中,此问题广泛存在,如Ubuntu、Gentoo等(Debian Sid已经不存在这个问题)。在没有进行手动设置的情况下,表现为CPU长时间处在高负荷,程序运行极其缓慢……

让我们修改配置文件,解决这个问题。首先备份:

cd /usr/share/X11/locale/zh_CN.UTF-8/

cp XLC_LOCALE ~/XLC_LOCALE.bak

使用编辑器修改/usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE,删除(或注释)含有GBK和GB2312的行,保存即可。

防火墙设置

wine的client和server之间是用传统client的通信方式。而iptables好像没有打开本机程序的通信通道。执行下面的命令即可解决问题。

sudo iptables -I INPUT -s 127.0.0.1 -j ACCEPT

参考:http://joke.li/blog/archives/284