分类 Linux 下的文章

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 之类的事情了.

昨天忽然一直正常使用的 jlink 4.62 结果不能用了,一直提示 Failed to prepare for programming. Failed to download RAMCode! 试了一下,以前保留的 jlink4.50 也不能用。只好跑 segger 上面下载了最新版本的 jlink,jlink-4.78.10-linux 选择RPM包,下载了以后,直接解压,到 ~/Downloads/temp 建立新的jlink文件夹 mkdir -p ~/opt/jlink/jlink-v478 把 rules 移动到jlink文件夹中, mv ~/Downloads/temp/etc/udev/rules.d/99-link.rules ~/opt/jlink/jlink-v478/ 把 主要文件 移动到jlink文件夹中, mv ~/Downloads/temp/opt/SEGGER/jlink/* ~/opt/jlink/jlink-v478/

切换到 root 模式, 然后建立 rules的快捷
cd /etc/udev/rules.d
ln -s /home/xyz/opt/jlink/jlink-v478/99-link.rules 99-link.rules

建立 lib 的快捷
cd /usr/lib
ln -s -d /home/xyz/opt/jlink/jlink-v478/libjlinkarm.so.4 libjlinkarm.so.4

这样就可以使用 jlink 了,也不会在出现写入不了的错误了。

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,不然可能上不了网。