编译tiny4412 Linux 内核

工作环境

Ubuntu 22

交叉编译器 4.5.1

解压Linux内核源码,进入目录

将官方配置完好的defconfig文件作为配置文件

bash 复制代码
cp tiny4412_linux_defconfig .config

由于内核版本较低,需要下载低版本的gcc,选择下载gcc-9与g+±9

bash 复制代码
sudo apt install gcc-9 g++-9

将gcc g++版本都切换为9

bash 复制代码
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100

切换后可以通过 gcc -v 查看是否切换成功

进入Linux目录,执行make编译

bash 复制代码
make zImage

出现错误

Can't use 'defined(@array)' (Maybe you should just omit the defined()?

修改方法

~/workspace/tiny4412/linux-3.5$ vi kernel/timeconst.pl +373

bash 复制代码
if (!defined(@val)) {
        @val = compute_values($hz);
      }

修改为,注释掉

bash 复制代码
#if (!defined(@val)) {
#        @val = compute_values($hz);
#      }
#

或者改为

vi kernel/timeconst.pl

将373行的

if (!defined(@val)) {

改为

if (!(@val)) {

bash 复制代码
make zImage

编译成功

相关推荐
invicinble21 分钟前
对linux形成认识
linux·运维·服务器
小Pawn爷27 分钟前
14.VMmare安装ubuntu
linux·运维·ubuntu
半桔1 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
HABuo2 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7772 小时前
关于Linux服务器的协作问题
linux·运维·服务器
小白同学_C3 小时前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
十年磨一剑~3 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei3 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
代码游侠4 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了4 小时前
6.库制作与原理
linux·服务器