Linux、Unix定制(2)
     分类:平台系统设计     有: 0 条评论

Linux、Unix定制(2)

     分类:平台系统设计     有: 0 条评论

未完成!持续更新

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

(●゚ω゚●)