定制Linux
- tar -xzvf linux-major-minor-VERSION.tar.gz -C /usr/src
- cd /usr/src
- ln -sv linux-major-minor-VERSION linux
- make allnoconfig
- make menuconfig
在此处配置的信息:
1. 64-bit kernel
2. Enable loadable module support --> Module unloading
3. Processor type and features --> 默认即可
4. Bus options --> PCI support
5. Executable file formats --> Kernel support for ELF binaries, Write ELF core dumps with partial segments, Kernel support for scripts starting with #!, Kernel support for MISC binaries
6. Network support --> Network options --> TCP/IP networking
7. Device drivers --> Generic Driver Options --> Maintain a devtmpfs filesystem to mount at /dev, Automount devtmpfs at /dev, after the kernel mounted the rootfs
8. SCSI device support --> SCSI device support, SCSI disk support, SCSI low-level drivers --> BusLogic SCSI support
9. Device Drivers --> Fusion MPT device support --> Fusion MPT ScsiHost \*
10. Network device support --> Ethernet driver support
11. Input device support --> Keyboards
12. File systems --> 含有Ext2/3/4的都选上
``
6. make -j 4 bzImage ;; 使用bzImage表示只编译内核, 如果直接使用make表示编译内核和模块
7. 注意这里不适用make moudel_install或者make install, 因为不是要将该内核装在本机上, 而是状态别的硬盘上
8. mkdir /mnt/sysroot
9. 使用fdisk /dev/sdb对目标硬盘进行分区
10. 使用mke2fs -t ext4 /dev/sdb1, mke2fs -t ext4 /dev/sdb2格式化分区
11. mount /dev/sdb2 /mnt/sysroot
12. mkdir /mnt/sysroot/boot
13. grun-install --root-directory=/mnt/sysroot /dev/sdb
14. vim /mnt/sysroot/boot/grub/grub.conf --> 进行配置
default=0
timeout=5
title MyLinux
root (hd0,0)
kernel /bzImage or root=/dev/sda2 init=/bin/bash
15. mkdir -pv /mnt/sysroot/{bin,sbin,lib64,lib,usr/{local/{lib,lib64,bin,sbin}},bin,sbin,lib,lib64} etc tmp var
16. 拷贝一些命令和对应的so文件到对应的目录中
17. cp arsh/x86/boot/bzImage /mnt/sysroot/boot
OK
#### 使用Busybox来提供lib文件
1. tar -xf busybox-major-minor-VERSION.tar.gz -C /usr/src
2. ls -sv busybox-major-minor-VERSION busybox
3. cd busybox
4. make menuconfig
5. 选择通用项, 修改为static安装
5. yum install -y glibc-statis glibs-devel
6. make && make install
7. cp -rv ./_install/* /mnt/sysroot/ --> 替换掉第一个环节的一些目录
8. cd /mnt/sysroot
9. mkdir -pv etc/rc.d
10. vim inittab
格式
id:runlevels:action:process(run command)
::sysinit:/etc/rc.d/rc.sysinit
::respawn:getty 9600 tty1 --> 其中的9600为固定的
::respawn:getty 9600 tty2
::respawn:getty 9600 tty2
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
11. vim etc/rc.d/rc.sysinit
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t ext4 /dev/sda1 /boot
mount -t ext4 -o remount,rw /dev/sda2 /
12. 也可以填写fstab
13. OK
### 编译安装dropbear
1. ./configrue
2. make scp && make install --> 使用make scp是为了以后通过ssh连接, 可用scp命令远程复制传输文件
3. mkdir /etc/dropbear
4. cd /etc/dropbear
5. dropbearkey -t rsa -f dropbear_rsa_host_key
6. dropbearkey -t dss -f dropbear_dss_host_key
7. 启动服务, dropbear -E -F -p 6666
定制Linux的更多相关文章
- 自己定制Linux发行版(资料)
/******************************************************************** * 自己定制Linux发行版(资料) * 声明: * 随着L ...
- 通过yocto给p1010rdb定制linux,并启动linux
一.通过yocto定制linux 1.安装yocto yocto只能在非root用户下编译,所以先新建一个用户. useradd chen passwd -d chen 重启电脑进入chen用户. ...
- 初涉定制linux系统之——自动化安装Centos系统镜像制作
最近碰到个需求:要在内网环境安装centos6.5系统并搭建服务,但由于自动部署脚本里安装依赖包使用的是yum安装,而服务器无法连接外网,实施人员也不会本地yum源搭建O__O "….. 本 ...
- 如何定制Linux外围文件系统?
本文由云+社区发表 作者:我是乖宝宝哦 一般来说,我们所说的Linux系统指的是各种基于Linux Kernel和GNU Project的操作系统发行版.为了掌握Linux操作系统的使用,了解 Lin ...
- 定制linux镜像并自动化安装
最近碰到个需求:要在内网环境安装centos6.5系统并搭建服务,但由于自动部署脚本里安装依赖包使用的是yum安装,而服务器无法连接外网,实施人员也不会本地yum源搭建….. 本来想法是打算把需要的依 ...
- 初涉定制linux系统之——rpm相关安装包的准备
在上一篇博客http://www.cnblogs.com/dengtr/p/5543820.html#3634582 中介绍了如何定制Centos系统镜像,但其中有个问题,就是服务所依赖的安装包不在原 ...
- 使用 linux kernel +busybox 定制linux系统
目的: 了解linux的启动过程 主要内容: 1.grub 是启动程序的bootloader 2.linux-kernel 是linux的开源内核 3.busybox 是linux的工具集合 启动顺序 ...
- 定制linux中的Gtk theme<一>如何设置窗口按钮的多态效果
GTK主题之个人理解: GTK 主题引擎(包含代码所需的图形元素) + 主题配置文件(gtkrc文件)+ 数据资源文件(如图片等) 三者所呈现给用户的视觉风格效果 GTK拥有一套大量的widg ...
- 基于busybox和LFS的linux系统定制
自从在大学知道了Linux这玩意是可以定制的之后,一直想做出一版属于自己的Linux系统.最近工作比较闲,终于塌下心来好好学习了一下. 目前来说,我接触的定制Linux的方法主要有两种: 1. ...
随机推荐
- 读取txt文件的简易算法
网友在问,从一个文本文件(txt)读取数据,并做简易算法.网友的原问题大约如下, 网友的问题,虽然说是全部是数字,但没有说明是否只有一行.因此Insus.NET在实现算法时,处理文本文件是否多行,是否 ...
- 判断某元素是否在Array中
几年前,Insus.NET有尝试把Array转换为IList接口,然后使用IList.Contains()方法.当时评论时,也引起了一些异议.原博文地址:http://www.cnblogs.com/ ...
- 想要转行/入行做产品经理,你得先get这些正确姿势
转自:https://mp.weixin.qq.com/s/Bh9QEihdV1JLWwB5I4VJ7Q 参考: 张小龙首次公开演讲(官方无删减版) 前腾讯高级产品经理:如何用“女性思维”做更好的产品 ...
- Serialization之BinaryFormatter
前言 BinaryFormatter序列化二进制序列化使用二进制编码来生成精简的序列化,以用于存储或基于套接字的网络流等. 内容 下面通过一个小小的例子来给大家说明什么是BinaryFormatter ...
- Python翻译器
import urllib.request import urllib.parse import json content='有了我,翻译再也不是问题啦' print(content) while c ...
- 数据结构13: 括号匹配算法及C语言实现
在编写代码的时候,经常会用到两种括号:圆括号 “()” 和大括号 “{}” .不管使用哪种括号,程序编译没有问题的其中一个重要因素就是所使用的括号是否能够匹配上. 在编写程序时,括号可以嵌套,即: “ ...
- vue.js路由嵌套
<!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...
- leecode第三题(无重复字符的最长子串)
class Solution { public: int lengthOfLongestSubstring(string s) { int len=s.size(); ||len==)//边界 ret ...
- 新建maven 父子模块项目
第一步: 第二步: 先创建个简单的空架结构作为父项目 第三步: 创建子项目 第四步: 切换显示不同的maven子项目显示方式 关于maven中的parent聚合一直都有没好好总结,固有这篇. ---- ...
- windows_study_2
描述:如何确定像%ProgramFiles%这样格式的目录的具体位置? 解决:运行——cmd——echo %ProgramFiles%——回车——界面就显示出目录位置了.