ptz 发布的文章

对于gentoo 上面通过 portage 安装的软件,如果升级以后产生了新的CONFIG 文件,在原来的地方有同名的文件,那么新的配置文件的命名将会在前面增加前缀: cfg0000,如果原来就有这个文件,那么新的文件会自动加一,变为 cfg0001。 要查找这些需要升级的配置文件,可以通过find 命令,find /etc -name '.cfg????*' 来找到对应需要升级的文件。

找到这些文件以后,可以使用etc-update, cfg-update, dispath-conf 这些工具来进行对配置文件的升级。 但是注意:etc-update 是没有版本系统的,升级配置文件要小心, 而 dispath-conf 是有版本系统的, 按u使用新的配置文件,按z删除新的配置文件,处理完了以后dispath-conf 会退出,或者按q来退出。/etc/dispath-conf.conf 里面配置archive-dir 对应的目录,用来保存文件。

gentoo 里面有两种方法安装jdk, 一种就是下载后解压, 然后添加环境变量, 还有一种是下载后, 通过 emerge 来安装.

为了管理方便, gentoo 里面建议使用后一种方法来安装. 首先 emerge --ask --verbose oracle-jdk-bin 按照提示在相应的文件里面添加许可, 然后看看提示是安装那个版本的JDK, 就去oracle上面 选择 Download 里面的 java for develops, 然后拉到最下面一项是下载以前的安装文件, 从这个里面下载 emerge 对应的安装文件, 至于doc 只能从网上搜索下载. 把下载的文件放入到 /etc/portage/distfiles里面, emerge --ask --verbose oracle-jdk-bin 安装即可.

然后选择 oracle 的作为默认的JDK java-config --list-available-vms java-config --set-system-vm 3

这样就切换了默认的JDK为 oracle 的.

gentoo 中安装 stardict, 默认里面是没有字典的. 字典因为版权的问题, 现在官方已经没有下载了, 只能在网络上面寻找非官方的源. 字典下载后, 解压, 如果是给所有人用, 就放入 /usr/share/stardict/dic, 如果只是给自己用, 就放入 ~/.stardict/dic. 按照默认的USE 安装的话, 是不能发音的, 必须分两步来解决.

一. stardict 能调用 espeak 修改stardict 的USE 添加 espeak ,然后重新 emerge 一下. 打开 stardict 里面选择发音TTS 是 espeak. 但是只有这样还是不行的, 因为默认的 espeak 不能发音, 可以命令行输入 espeak word & 来进行测试, 是没有声音的.

二. espeak 能够发音 修改 espeak 的 USE 添加 pluseaudio, 然后重新 emerge 一下, 命令行输入 espeak word & 来进行测试, 是有声音的. 然后重新打开 stardict 就可以发音了.

当然也可以安装 festival 来进行发音.

在 gentoo 中安装 firefox ,结果发现中文都是小方块, 原因是没有配置好中文的字体. 下载中文字体 emerge --ask --verbose wqy-zenhei wqy-unibit wqy-microhei

/etc/fonts/conf.d/49-sansserif.conf 把倒数第四行的 字体 中的 sans-serif 改为 wqy-microhei.

然后重启X 就可以了.

默认安装的 rxvt-unicode 不显示中文, 汉字都是小方块, 通过下面的办法可以搞定. 首先在 .xintrc 里面 export LANG=zh_CN.UTF-8, 然后安装 wqy的字库. USE 里面设置 alt-font-width wcwidth xft -vanilla, 重新编译 rxvt-unicode, 进入X系统, 运行 urxvt, 发现汉字都很小.

然后对 urxvt进行配置 vim~/.xinitrc xrdb -merge ~/.Xresources

vim ~/.Xresources URxvt*font: xft:文泉驿微米黑:size=10

Xft.dpi: 96 Xft.antialias: true Xft.rgba: rgb Xft.hinting: true Xft.hintstyle: hintslight Xft.autohint: false Xft.lcdfilter: lcddefault

URxvt.scrollBar: false URxvt.scrollBar_right: false URxvt.scrollBar_floating: false URxvt.scrollstyle: rxvt

URxvtbackground: #000000 URxvtforeground: #B2B2B2

这样URXVT就可以进行中文的输入输出, 但是有个问题就是字符的间距比较大, 这个暂时我也在找解决方法.

一. 配置 系统状态栏 tint2

首先启动X, 然后运行一下 tint2, 让 tint2 自动生成默认配置 startx 右键里面选择 xterm 运行 tint2 运行然后退出.

如果你想在X启动时启动tint2,添加这下列到~/.xinitrc。例如配合openbox运行tint2:

!/bin/sh

#

~/.xinitrc

#

Executed by startx (run your window manager from here)

tint2 & exec ck-launch-session openbox-session

如果你想在Openbox启动的时候启动tint2,修改~/.config/openbox/autostart添加如下:

tint2 &

注意:如果在~/.config/openbox没有autostart文件,你可以从/etc/xdg/openbox/autostart复制一份。

因为我只用 openbox, 所以我在 autostart 里面添加 tint2 &

感觉tint2 在屏幕下端不爽, 把 tint2 移动到屏幕上方: vim ~/.config/tint2/tint2rc 查找 bottom 并替换为 top, 然后重新加载X即可.

二. 壁纸 然后找一张图片作为壁纸 vim ~/.config/openbox/autostart wallpaper="planet.jpeg" feh --bg-scale ~/Artwork/${wallpaper} &

三. 安装conky emerge --ask --verbose conky vim ~/.config/openbox/autostart conky&

四. 配置输入法 注意不要安装 kcm-fcitx 因为这个是在KDE下面用的, openbox 下面用不了. emerge --ask --verbose fcitx fcitx-sunpinyin fcitx-configtool

vim ~/.xinitrc eval "$(dbus-launch --sh-syntax --exit-with-session)" 注意这个必须放在 openbox 启动前面 export XMODIFIERS="@im=fcitx" export QT_IM_MODULE=xim export GTK_IM_MODULE=xim

vim ~/.config/openbox/autostart fcitx&

进入X以后发现 fcitx 的双拼默认按键方案不好, 改为紫光的即可. vim ~/.config/fcitx/conf/fcitx-pinyin.config DefaultShuangpinSchema=Ziguang

修改完成后, 按键 CTRL+5 让 fcitx重启即可.

五. 安装 polkit emerge polkit-gnome vim ~/.config/openbox/autostart.sh sleep 1 && /usr/libexec/polkit-gnome-authentication-agent-1 &

六. 防止视频进入省电状态 防止mplayer屏幕省电状态 vim ~/.mplayer/config heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"

安装了gentoo 以后, 准备使用 openbox 作为图形界面. 听说可以 obmenu管理右键菜单 obconfig管理openbox tint2面板 pcmanfm文件管理器 pnmixer音量管理器 feh墙纸墙纸设定 lxapperance设置主体.

emerge --ask --verbose obmenu obconf tint2 pcmanfm pnmixer feh

/etc/portage/make.conf 中的USE里面增加 dbus 和 consolekit

更新世界的USE emerge --ask --changed-use --deep @world

添加到启动 /etc/init.d/dbus start rc-update add dbus default /etc/init.d/consolekit start rc-update add consolekit default

cd /usr/src/linux-xxx make menuconfig 确保如下选项选中,如果以前没有选中,那么选中后需要重新编译内核. General setup ---> [] Auditing support [] Enable system-call auditing support

复制openbox 默认配置文件 mkdir -p ~/.config/openbox/ cp /etc/xdg/openbox/* ~/.config/openbox/

设置命令行启动图形的配置 vim ~/.xinitrc exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session

使用 startx 发现没用, 原来是忘了安装 xorg.

安装xorg:

因为阉掉了独立显卡,只使用集成显卡,首先看看显卡 lspci | grep -i VGA

vim /etc/portage/make.conf

(For intel integated cards)

VIDEO_CARDS="intel" 使用intel 集成显卡

(For mouse, keyboard, and Synaptics touchpad support)

INPUT_DEVICES="evdev synaptics"

更新一下 USE emerge --ask --changed-use --deep @world 把用户加入图像组 gpasswd -a xxx video

安装 xorg-server 进行驱动 emerge --ask --verbose xorg-server

xorg 使用evdev

查看内核 Device Drivers ---> Input device support ---> <*> Event interface

使用KMS必须关掉 framebuffer, 查看内核 Device Drivers ---> Graphics support ---> Frame Buffer Devices ---> <*> Support for frame buffer devices --->

(Disable all drivers, including VGA, Intel, nVidia, and ATI, except EFI-based Framebuffer Support, only if you are using UEFI)

## (Further down, enable basic console support. KMS uses this.)
Console display driver support --->
  <*>  Framebuffer Console Support

INTEL 显卡 Processor type and features ---> [] MTRR (Memory Type Range Register) support Device Drivers ---> Graphics support ---> <> /dev/agpgart (AGP Support) ---> <> Intel 440LX/BX/GX, I8xx and E7x05 chipset support <> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> <> Intel 8xx/9xx/G3x/G4x/HD Graphics [] Enable modesetting on intel by default [*] Enable legacy fbdev support for the modesetting intel driver

Device Drivers ---> Graphics support ---> <> /dev/agpgart (AGP Support) ---> --- /dev/agpgart (AGP Support) < > AMD Opteron/Athlon64 on-CPU GART support -- Intel 440LX/BX/GX, I8xx and E7x05 chipset support < > SiS chipset support < > VIA chipset support [ ] VGA Arbitration [ ] Laptop Hybrid Graphics - GPU switching support <> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> --- Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) [] Enable legacy fbdev support for your modesetting driver [ ] Allow to specify an EDID data set instead of probing for it I2C encoder or helper chips ---> < > 3dfx Banshee/Voodoo3+ < > ATI Rage 128 < > ATI Radeon < > AMD GPU < > Nouveau (NVIDIA) cards < > Intel I810 <> Intel 8xx/9xx/G3x/G4x/HD Graphics [ ] Enable preliminary support for prerelease Intel hardware by default < > Matrox g200/g400 < > SiS video cards < > Via unichrome video cards < > Savage video cards < > Virtual GEM provider < > DRM driver for VMware Virtual GPU < > Intel GMA5/600 KMS Framebuffer < > DisplayLink < > AST server chips < > Kernel modesetting driver for MGA G200 server engines < > Cirrus driver for QEMU emulated device < > QXL virtual GPU < > DRM Support for bochs dispi vga interface (qemu stdvga) Display Panels ----
Display Interface Bridges ---- Frame buffer Devices ---> -
- Backlight & LCD device support ---> Console display driver support ---> [*] Bootup logo --->

如果使用INTEL的 Kabylake, Skylake , Broxton 显卡,需要安装 sys-kernel/linux-firmware, 并且在kernel 里面指定位置: Device Drivers ---> Generic Driver Options ---> -- Userspace firmware loading support [] Include in-kernel firmware blobs in kernel binary (i915/skl_dmc_ver1_26.bin) (/lib/firmware) Firmware blobs root directory

重新编译内核. reboot

然后使用video用户组里面的用户登录, 使用 startx 启动进入图像界面.

普通用户模式 生成一下 openbox 的 obmenu 菜单 obmenu-generator -i -s

绑定快捷键 vim ~/.config/openbox/rc.xml

xterm

root-menu

client-list-combined-menu

菜单增加图标, 未安装的时候,只有几个能显示图标, 安装完成就可以了. vim /etc/portage/package.use/openbox x11-wm/openbox imlib 重新编译一下openbox emerge --ask --changed-use x11-wm/openbox 修改obmenu 图标 vim ~/.config/openbox/menu.xml

    xterm

一. 制作启动盘 因为提前下载好了 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 之类的事情了.

半年前接触到了时间管理, 然后狠狠心买了 MLO 来进行练习.

我这些天在使用MLO的过程当中,经历了 使用--废弃 的无数个循环. 当我使用MLO 的时候, 我觉得心平气和, 一件一件完成事情, 有种简单的快乐. 当我废弃MLO的时候, 事情就做的没头没脑.

而我废弃MLO的原因, 其实有这么几种情况:

  1. 贪玩, 玩能够让人放松, 然后沉浸到放松里面, 不愿意出来. 我觉得这是一种逃避, 逃避要做的事情.
  2. 有一些比较紧急的事情需要处理, 结果就没用MLO, 但是事后再看, 效率还没有用MLO 的时候好.

我现在总结我废弃的原因其实就是几点:

  1. 碰到困难的事情, 不要逃避, 不要想着我先看会网页, 或者其他什么. 而是静下心来把困难的事情分解成一个一个可以独立操作的事务, 然后什么都不要想, 埋头做下去. Just do it.

  2. 习惯非常重要! 习惯非常重要! 习惯非常重要! 我想到了一些经典的语句: "借假修真" , "手指指月, 指非月". "需要一点仪式感". 我现在觉得实现起来, 最合适的就是"晨间日记" 和 "三省吾身". 每天早点起来写一下晨间日记, 对自己一天要做的事情, 做一个简单的盘点, 也对昨天进行一下总结. 我写晨间日记那天和效率会明显高于不写的时候.

这些都是深刻的教训啊 . 平常不烧香, 临时抱佛脚. 不对时间进行管理的时候, 工作一个是没头绪, 一个是看看这个, 摸摸那个, 浪费了很多时间. 结果搞到最后要晚上熬夜干活. 这可是我通宵了几次之后的血的教训啊. .

我觉得,对于我这种拖延症晚期来说, 最近的目标就是坚持连续使用 GTD 1个月, 养成习惯. 关注点暂时只放到执行上面, 上面几个层次暂时不做更多的练习. 先做到 执行没问题再说 .