在 Banana pi 上使用 Gentoo

看中Banana pi的高性能,入了一个,打算拿来做NAS或者硬件防火墙。 编译环境 利用emerge --root建立一个chroot简单的编译环境。 安装sys-dev/crossdev用于建立跨平台编译环境。 crossdev -S -P -v EXTRA_ECONF="-march=armv7-a -mfpu=neon-vfpv4 -ffast-math" -t armv7a-hardfloat-linux-gnueabi --vo-layout /usr/portage/安装编译环境。 编译内核 Banana-Pi Office Git 从git上下载内核bsp和bpi-tools。 安装编译依赖bc,cpio PATH路径增加bpi-tools和u-boot/tools, 在Makefile和configure,scripts/install_kernel_config.sh文件里更改编译器 TTY ouput 首先要看到调试输出,入了一个tty转串口usb的FT232板子。 1.先装驱动 sudo make CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_FTDI_SIO=m -C /usr/src/linux M=`pwd` modules sudo make CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_FTDI_SIO=m -C /usr/src/linux M=`pwd` modules_install modprobe ftdi_sio 2.线序为黑橙黄,注意,RX,TX要和板子颠倒!! 3.使用picocom连接ttyUSB picocom -b 115200 /dev/ttyUSB0 Ctrl-A+Ctrl-Q 退出

September 16, 2017 · 1 min · lyincc

Gentoo 包管理工具 - Portage

Portage portage是gentoo的包管理器,也是gentoo最出众的地方之一。 sit emerge -av --update --newuse --deep @world 每次运行这条命令,就好像真个更新了整个世界(笑)。 cat /var/lib/portage # 查看world world是一个包集合,总是包括了我真正需要的包。 emerge -av --depclean 而这条命令使得gentoo总能保持清洁,它将除了系统需要的包(由系统profile决定,eselete profile list查看)、world中的包和它们的依赖包之外的包清除。对于apt/yum/dnf等包管理,我还没有见这样有效的包清理。 emerge -av @module-rebuild 这个sit包括了有内核模块的包,每次建立新内核,都应该重新编译。 emerge -p @system @system包括了系统的基本包 /etc/portage/sets # 自定义sets use USE管理包的功能封装,有人嫌弃apt零碎的包封装,也有人嫌弃pacman过于臃肿。那还有什么比直接自定义包的功能更高效的呢(虽然自己编译略费时间。。)。 /etc/portage/make.conf # 定义全局USE /etc/portage/packages.use # 定义单个包USE emerge --info | grep ^USE # 查询全局USE equery uses [pkg] # 查询单个包USE euse -i USEFLAG # 查看flag作用 accept_keywords /etc/portage/packages.accept_keywords accept_keywords管理着包的架构和版本选择,例如amd64为稳定包,~amd64为测试包 深度清理和校验 依稀记得Arch Wiki中的pacman tips里有个非常强大的清理脚本。它通过对比磁盘文件和包管理器数据库中的所有文件找出不属于任何包的第三方文件。从而达到深度清理。(不得不说Arch的AUR的强大,连这种脚本都有一个包) Gentoo或许也可以做到。 equery files @world | sort | uniq > owned_files....

September 2, 2017 · 1 min · lyincc