内核重新编译
sitelist
这个作者很懒,什么都没留下…
展开
-
xorg初始化过程分析,device节的自动配置
GDevPtrautoConfigDevice(GDevPtr preconf_device){ GDevPtr ptr = NULL; char *matches[20]; /* If we have more than 20 drivers we're in trouble */ int num_matches = 0, num_scre原创 2015-02-14 22:08:12 · 2250 阅读 · 0 评论 -
xorg初始化过程分析,xf86DriverlistFromConfig()函数分析
voidInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv){ ...... /* Load all driver modules specified in the config file */ /* If there aren't any specified in t原创 2015-02-14 22:50:31 · 3005 阅读 · 0 评论 -
X.509 证书 和 taskstats 对应的config选项
linux-3.18.4$ grep -rn "Loading compiled-in X.509 certificates" ./*匹配到二进制文件 ./arch/x86/boot/compressed/vmlinux.bin匹配到二进制文件 ./kernel/system_keyring.o匹配到二进制文件 ./kernel/built-in.o./kernel/system_原创 2015-02-06 21:55:52 · 1986 阅读 · 0 评论 -
内核编译之ACPI错误,ACPI: [Package] has zero elements
cheng@chpc:/usr/src/linux-3.18.4/drivers/acpi$ grep -rn "has zero elements" ./*匹配到二进制文件 ./acpi.o匹配到二进制文件 ./built-in.o./utils.c:364: printk(KERN_ERR PREFIX "[Package] has zero elements (%p原创 2015-02-08 19:19:28 · 3003 阅读 · 0 评论 -
内核编译之模块验证失败和手动模块签名
cd scripts/sudo perl sign-file sha512 ../signing_key.priv ../signing_key.x509 ../libahci.ko四个参数,第一个是sha512 第二个第三个都在/usr/src/linux-3.18.4/下每次编译都要签名,所以只编译bzImage然后cp替换/boot目录下的vmlinu原创 2015-02-08 19:12:32 · 4495 阅读 · 1 评论 -
initramfs中init调用的udev脚本对应的dmesg输出
[ 1.942305] systemd-udevd[75]: starting version 204[ 1.945807] usb 2-1: new high-speed USB device number 2 using ehci-pci[ 1.975663] Request for unknown module key 'Magrathea: Glacier sig原创 2015-02-05 17:35:41 · 3376 阅读 · 0 评论 -
内核编译选项20要20不要
CONFIG_SYSVIPCCONFIG_BLOCKCONFIG_X86_PM_TIMERACPICONFIG_X86_ACPI_CPUFREQCONFIG_PCICONFIG_BINFMT_ELFCONFIG_UNIXCONFIG_DEVTMPFSCONFIG_NETDEVICESCONFIG_TTYCONFIG_VT_CONSOLECONFIG_VG原创 2015-02-02 07:57:59 · 1494 阅读 · 0 评论 -
udev依赖的config选项
Networking support (NET) Networking options CONFIG_UNIXFile systems CONFIG_INOTIFY_USER原创 2015-02-05 15:03:28 · 1367 阅读 · 0 评论 -
内核编译图文教程,硬盘篇
CONFIG_BLK_DEV_SD使用SCSI/SAS/SATA/PATA/USB/Fibre Channel存储设备的必选.选"Y".CONFIG_ATACONFIG_ATA_VERBOSE_ERRORCONFIG_ATA_ACPICONFIG_SATA_AHCIAHCI原创 2015-02-05 21:26:48 · 1331 阅读 · 0 评论 -
内核编译图文教程
原创 2015-02-03 19:07:29 · 1031 阅读 · 0 评论 -
内核编译图文教程,usb键盘鼠标篇
CONFIG_INPUT_MOUSEDEVCONFIG_INPUT_EVDEVHardware I/O ports什么都不用选CONFIG_USB_HIDTo compile this driver as a module, choose M here: themodule will be called usbhid.Depends on: USB [=y]原创 2015-02-10 13:44:50 · 2654 阅读 · 0 评论 -
内核编译图文教程,usb无线网卡篇
Depends on: STAGING [=y] && WLAN [=y] && USB [=y]cheng@chpc:/usr/src/linux-3.18.4$ lsusbBus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 007 Device 001: ID 1d6b:0001 Linux Found原创 2015-02-09 20:17:17 · 2314 阅读 · 0 评论 -
xorg初始化过程,没有配置文件,用默认值
[ 32.314] (==) No screen section available. Using defaults.[ 32.314] (**) |-->Screen "Default Screen Section" (0)[ 32.314] (**) | |-->Monitor ""[ 32.315] (==) No monitor specified原创 2015-02-14 21:36:25 · 2536 阅读 · 0 评论 -
xorg初始化LoadModule的过程
[ 32.320] (II) LoadModule: "glx"[ 32.336] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so[ 32.426] (II) Module glx: vendor="X.Org Foundation"[ 32.426] compiled for 1.15.1原创 2015-02-14 17:59:34 · 3966 阅读 · 1 评论 -
ubuntu的xorg的配置文件通过/var/log/Xorg.0.log查看位置
查找xorg.conf.d即可查找到配置文件的位置[ 34.781] (==) Using system config directory "/usr/share/X11/xorg.conf.d"cheng@chpc:/var/log$ cd /usr/share/X11/xorg.conf.dcheng@chpc:/usr/share/X11/xorg.conf.原创 2015-02-14 16:23:30 · 5459 阅读 · 0 评论 -
xorg初始化对应的文件
xf86PrintBanner()函数被InitOutput()函数调用InitOutput()函数被./dix/main.c中dix_main()函数调用原创 2015-02-14 17:53:05 · 1037 阅读 · 0 评论 -
xorg日志文件及xorg的初始化和配置过程,1
ubuntu的xorg的配置文件通过/var/log/Xorg.0.log查看位置 http://www.x.org/releases/individual/xserver/ 可以下载xserver源代码cheng@chpc:~/download/xorg-server-1.15.1$ grep -rn "FontPath set to" ././hw/xfree86/comm原创 2015-02-14 17:32:50 · 7502 阅读 · 0 评论 -
linux启动之scsi和ata的初始化
static int __init init_scsi(void){ int error; error = scsi_init_queue(); if (error) return error; error = scsi_init_procfs(); if (error) goto cleanup_que原创 2015-02-11 12:29:25 · 2883 阅读 · 0 评论 -
initcall_debug参数定位初始化过程的错误信息发生的位置
可用的核心参数可以参考Documents/kernel-parameters.txt或者看代码的时候有调试功能的函数对应的开关变量。kernel参数里面加入:initcall_debug即可调用do_one_initcall_debugint __init_or_module do_one_initcall(initcall_t fn){ int count =原创 2015-02-12 11:37:01 · 2611 阅读 · 0 评论 -
scsi和光驱,硬盘,u盘都有关啊
[ 2.313370] scsi 0:0:0:0: CD-ROM PLDS DVD-RW DS8A8SH KL31 PQ: 0 ANSI: 5[ 2.337554] usb 4-1: New USB device found, idVendor=17ef, idProduct=602d[ 2.337566] usb 4-1: New原创 2015-02-05 22:29:43 · 3516 阅读 · 0 评论 -
config_fb_vesa不设置,不能启动radeon模块的原因分析
/* Allocate and load the module: note that size of section 0 is always zero, and we rely on this for optional sections. */static int load_module(struct load_info *info, const char __user *uargs,原创 2015-02-04 22:13:52 · 2384 阅读 · 0 评论 -
通过dmesg分析linux的启动过程,几种放入dmesg文件的方法
[ 20.395701] systemd-udevd[251]: starting version 204cheng@chpc:~/download/systemd-218$ grep -r "starting version" ./*./src/udev/udevd.c: log_info("starting version " VERSION);原创 2015-02-04 19:59:31 · 3911 阅读 · 0 评论 -
scripts/local脚本mount_root脚本文件分析
# Local filesystem mounting -*- shell-script -*-pre_mountroot(){ [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-top" run_scripts /scripts/local-top [ "$qu原创 2015-01-28 14:02:16 · 3697 阅读 · 1 评论 -
initramfs-tools套件,wait-for-root代码分析
initramfs-tools_0.103下载#include #include #include #include #include #include #include #include #include #include #include static int device_queued (struct udev *ude原创 2015-01-29 22:55:05 · 2537 阅读 · 0 评论 -
内核编译init脚本调用mountroot()函数分析
mountroot(){ pre_mountroot # Get the root filesystem type if not set if [ -z "${ROOTFSTYPE}" ]; then [ -n "${FSTYPE}" ] || FSTYPE=$(blkid -s TYPE -o value "${ROOT}")原创 2015-01-29 07:59:55 · 1702 阅读 · 1 评论 -
initrd 中init 脚本的分析
initrd 中init 脚本的分析 由前面 cpio-initrd的处理流程可以看到,内核在将其解开并放入 rootfs 后,将要执 行 /init文件,所以我们分析的重点就是这个文件。其它的文件请结合具体的源码与本文的内容进行理解。 #!/bin/sh该行说明该init文件是一个由sh解释并执行的脚本文件,内核通过文件头来确定应该怎样执行(即是直接执行还转载 2015-01-28 22:35:47 · 3741 阅读 · 1 评论 -
initrd.img的解压和修改后再压缩
内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包cp /boot/initrd-***.img initrd.img.gzgunzip initrd.img.gzmkdir initrdmv initrd.img initrdcd initrdc转载 2015-01-26 18:06:49 · 2110 阅读 · 0 评论 -
initramfs对应的init脚本文件,解压后可见
#!/bin/sh[ -d /dev ] || mkdir -m 0755 /dev[ -d /root ] || mkdir -m 0700 /root[ -d /sys ] || mkdir /sys[ -d /proc ] || mkdir /proc[ -d /tmp ] || mkdir /tmpmkdir -p /var/lockmount -t sys原创 2015-01-26 21:27:31 · 3543 阅读 · 1 评论 -
内核重新编译之make install和生成initramfs的过程分析
$ sudo make installsh /home/ch/下载/linux-3.13/arch/x86/boot/install.sh 3.13.0 arch/x86/boot/bzImage \ System.map "/boot"run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0原创 2015-01-26 14:21:34 · 8881 阅读 · 0 评论 -
init文件调试结果
grub.conf 里面的quiet去掉,加上debug可以看出调用了//script/local-premountscript/local-boottomscript/init-boottom原创 2015-01-26 21:54:44 · 1081 阅读 · 0 评论 -
initrd/bin/run-init源代码来源与klibc-2.0.4/usr/kinit目录
#include #include #include #include #include #include "run-init.h"static const char *program;static void __attribute__ ((noreturn)) usage(void){ fprintf(stderr, "Usag原创 2015-01-29 17:03:31 · 2542 阅读 · 1 评论 -
initrd.img中的init脚本分析,load_modules()分析
定义在scripts/functions中。# Don't do log messages here to avoid confusing graphical bootsrun_scripts /scripts/init-top在init脚本中被调用:maybe_break modules[ "$quiet" != "y" ] && log_begin_msg "Loadi原创 2015-01-28 20:36:43 · 2040 阅读 · 1 评论 -
Initrd启动及功能分析
Initrd启动及功能分析Initrd这个设计的初衷是用来加载额外内核模块供启动的。可以参考 内核文档 Documentation/initrd.txt。在加载完内核后,如果存在initrd,则会执行 initrd 里的 /init。(文档里说的是/linuxrc,在 init/do_mounts_initrd.c 里也是这个,在 init/main.c 里是 /init,具体待考。)转载 2015-01-29 15:44:55 · 1814 阅读 · 0 评论 -
内核编译图文教程,概述篇
内核编译的主要任务就是把自己的硬件对应的编译进内核或模块。尽量去掉内核中自己没有的硬件。所以用一些探测自己硬件的命令非常重要。比如自己的显卡,键盘鼠标,硬盘,网卡声卡。现在(2015年)的机器基本上显卡是n卡或a卡,键盘鼠标一般是usb的,硬盘一般是sata的,原来的是ide的。可以用df命令查看。文件系统一般是ext4,原来的是ext3,可以用blkid命令查看。原创 2015-02-04 10:58:19 · 1100 阅读 · 0 评论 -
mkinitramfs命令详解
#!/bin/shumask 0022export PATH='/usr/bin:/sbin:/bin'# Defaultskeep="n"CONFDIR="/etc/initramfs-tools"verbose="n"test -e /bin/busybox && BUSYBOXDIR=/bintest -e /usr/lib/initramfs-too原创 2015-01-28 13:19:11 · 14056 阅读 · 1 评论 -
内核编译图文教程,显卡篇
CONFIG_AGP_AMD64该项仅适用于如下AMD处理器:(1)AMD K8微架构CPU[cpu family : 15](2)AMD K10微架构CPU[cpu family : 16] (3)AMD 推土机微架构CPUk即是k15架构[cpu family : 21 并且 model: 小于15config_vesa 应该选上不然会出错[ 21.原创 2015-02-04 09:22:14 · 2782 阅读 · 0 评论 -
内核编译按照硬件检查选项
u盘CONFIG_USB_STORAGEUSB存储设备(U盘,USB硬盘,USB软盘,USB光盘,USB磁带,记忆棒,数码相机,读卡器等等).该选项依赖于CONFIG_SCSI和CONFIG_BLK_DEV_SD选项.选"Y",除非你确实知道自己在干什么.原创 2015-02-01 11:16:40 · 1833 阅读 · 0 评论 -
加速内核编译速度的几个方法
1,.config文件最好是最近的官方内核的.config文件,因为有些config_xxx选项可能会变化。2,make 加上 -j4选项,现在的机器基本上都是双核四核。3,make localmodconfig是个很好的方法,我的模块才53个,5m左右。而官方的4000多个,100多m。能显著的减少模块编译的速度,我的也就是5分钟,而官方的编译要4个小时左右。4,为了减少编译原创 2015-01-31 23:45:29 · 5074 阅读 · 0 评论 -
CONFIG_DEBUG_INFO 能显著增加ko文件的大小
CONFIG_DEBUG_INFO以调试方式编译内核(gcc -g).仅供内核开发者使用Debug VMmy-video.ko: 文件格式 elf32-i386节:Idx Name Size VMA LMA File off Algn 0 .note.gnu.build-id 00000024 0000000原创 2015-01-31 22:07:38 · 3653 阅读 · 0 评论 -
acpi package has zero elements错误的解决
下面的是我的配置文件的ACPI部分:# CONFIG_PM_WAKELOCKS is not setCONFIG_PM_TEST_SUSPEND=y# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set# CONFIG_ACPI_PROCFS is not setCONFIG_ACPI_PROCESSOR_AGG原创 2015-01-30 10:05:55 · 2839 阅读 · 0 评论