未完成!持续更新
Linux、Unix定制(1):https://www.leolan.top/index.php/posts/229.html
Linux定制
内核定制
内核升级:https://www.leolan.top/index.php/posts/65.html
Linux内核编译详解:https://blog.csdn.net/crazycoder8848/article/details/44131735
系统定制
对已有系统进行拼装
支持Ubuntu、Centos等系统
**参考:**镜像(本机备份系统,还原到新主机上):https://www.leolan.top/index.php/posts/79.html
树莓派RaspberryPi系统备份Image的制作
http://conanwhf.github.io/2016/08/25/rpi-cloneimg/
Unix定制
内核定制
FreeBSD
完整源码下载:https://download.freebsd.org/ftp/releases/
# 编译内核
wget https://download.freebsd.org/ftp/releases/arm64/11.1-RELEASE/src.txz
tar -C / -zxvf src.txz
cd /usr/src/sys/amd64/conf
cp GENERIC GENERIC.bak
#########################################################
vim GENERIC
vim /usr/src/sys/amd64/conf/NOTES (与平台有关的选项)
vim /usr/src/sys/conf/NOTES (与平台无关的选项)
# 设备清单:https://www.freebsd.org/doc/zh_CN/books/handbook/kernelconfig-devices.html
# 内核配置(参考:https://www.freebsd.org/doc/zh_CN/books/handbook/kernelconfig-config.html)
#########################################################
# 运行config命令来产生内核源代码
/usr/sbin/config GENERIC
#切换到建立内核的目录
cd ../compile/GENERIC
# 删除原来的依赖关系
make clean depend
make -j4 depend
make -j4
# 安装新内核
make -j4 install
然后就可以重新启动了,编译内核完成
# 查看新内核
ls -al -h /boot/kernel/kernel
系统定制
FreeBSD
更新系统
没有人能保证操作系统完美无缺,即便是发行版也不能,但在发现补丁后及时打上,是最明智的做法。这一点上FreeBSD也做得相当人性。那么,更新系统文件之前,我们也需要改一个配置文件,会让你变得更快。
更新FreeBSD系统文件
vim /etc/freebsd-update.conf
# 修改更新源
找到ServerName update.FreeBSD.org 改为freebsd-updates.mirrors.163.com
更新之前可以看一下uname -a,以11.1为例,会显示FreeBSD 11.1-RELEASE
freebsd-update fetch
freebsd-update install
更新完成后重启,再打uname -a,会显示FreeBSD 11.1-RELEASE-p2,显示系统补丁已经打上了。
这些命令,你都可以加入到crontab中定期自动运行。
有些接触过FreeBSD的一定知道portsnap,这是freebsd下软件更新的利器。或者说也是唯一的途径。ports,可以理解为是FreeBSD所维护的一个庞大的应用软件列表,你所需要的和不需要的软件,几乎都可以在这个列表下找到。而portsnap,顾名思义,就是ports的快照。运行portsnap会把目前最新的远端ports树结构以及树下所有软件的最新稳定版的编译文件列入服务器的ports树中。
安装及更新ports树
vi /etc/portsnap.conf
# 修改更新源
找到portsnap.FreeBSD.org将其改为portsnap3.hshh.org
镜像列表如下:
portsnap.hshh.org(电信)
portsnap2.hshh.org(电信)
portsnap3.hshh.org(网通)
portsnap4.hshh.org(电信)
FreeBSD只要你自动设定portsnap,会自动upgrade;软件也会是最新的。
# 然后,执行下述命令
portsnap fetch extract # 第一次执行下载完整目录
portsnap fetch update # 增量更新
第一次需要执行fetch extract,以后只需要执行fetch update即可。
修改、优化
完整源码下载:https://download.freebsd.org/ftp/releases/
参考手册:https://www.freebsd.org/doc/zh_CN/books/handbook/index.html
##################### 以下是系统配置 #####################
# 开启ssh
vi /etc/inetd.conf
去掉ssh前的#,保存退出
vi /etc/rc.conf
sshd_enable="yes"
vi /etc/ssh/sshd_config
PermitRootLogin yes #允许root登录
/etc/rc.d/sshd start
netstat -an
#########################################################
# 修改时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# (adjkerntz = adjust kernal timezone)
adjkerntz -a
date
#########################################################
# 修改hostname
vim /etc/rc.conf
hostname=my-freebsd
vim /etc/hosts (这一条不要加:报错:sm-mta[645]:my unqualified host name (my-freebsd) unknow;)
127.0.0.1 my-freebsd
#########################################################
# 设置鼠标右键粘贴
vim ~/.vimrc
if has('mouse')
set mouse-=a
endif
source ~/.vimrc
#########################################################
# 安装常用软件
参考资料:
https://www.kafan.cn/edu/6196491.html
http://phpstudy.php.cn/b.php/7986.html
pkg install vim wget curl git htop lsof
# 搜索需要的软件
pkg search [python]
pkg install python36-3.6.5 py36-pip-9.0.3 py36-pipenv-11.9.0
# 设置软链接(FreeBSD默认是csh;如果是bash则是.bashrc)
vim .cshrc
alias vi vim
alias python python3.6
alias pip pip-3.6
source .cshrc
#########################################################
# 解决freebsd下普通用户无法su至root
vim /etc/group
wheel:*:0:root #修改第一行
wheel:*:0:root,leolan #给wheel用户组添加leolan用户
然后就可以通过普通用户leolan su 到root了
#########################################################
# 设置FreeBSD登陆提示信息
vim /etc/motd #写入需要提示内容即可
#########################################################
# 安全配置
http://www.jb51.net/os/Unix/160666.html
##################### 以下是硬件配置 #####################
# 解决安装后声卡无法识别问题
vim /boot/loader.conf
添加
snd_hda_load="YES"
保存,reboot.即可。
定制声卡:https://www.freebsd.org/doc/zh_CN/books/handbook/sound-setup.html
#########################################################
Linux、Unix移植到ARM(含嵌入式)
交叉编译工具链1
http://www.veryarm.com/cross-tools
交叉编译工具链2
该工具链基于armhf,不仅是交叉编译工具,同时也能编译出一个嵌入式系统。
https://buildroot.org
参考:
ARM板移植Linux系统启动:http://conanwhf.github.io/categories/Linux/
嵌入式linux:https://blog.csdn.net/xdw1985829/article/details/6685001
Mac OSX
Mac OSX应该是基于FreeBSD原始码和Mach微核心为基础,深度修改定制出来的,自成一派;关于起源很复杂,楼主也至今没弄明白,姑且这样认为吧。不影响使用。
之前玩黑苹果比较早,当时还没写博客(__) 嘻嘻……,折腾的挺累的,留下的笔记都是离线保存的网页;自从用了白苹果就没心思去折腾了,下面附上这篇靠一点点记忆整理出来的文章。
https://www.leolan.top/index.php/posts/40.html
评论区