编译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

编译成功

相关推荐
徐小黑ACG2 小时前
nginx配置文件
linux·服务器·nginx
新时代牛马3 小时前
Linux VFS 完整篇:从path_openat、dentry/inode 到page cache 与挂载排障
linux·运维·服务器
java_logo3 小时前
Docker 部署 Rocky Linux:轻松搭建 RHEL 兼容企业级基础镜像平台
linux·docker·容器·rocky linux·基础镜像·轩辕镜像·rhel 兼容
拂拉氏3 小时前
【知识讲解】 Linux虚拟地址空间认识
linux·虚拟地址空间
新时代牛马5 小时前
Linux 驱动中断与定时完整篇:从 request_threaded_irq 到hrtimer 选型与排障
linux·运维·服务器
分支预测失败7 小时前
RISC-V 核间中断 IPI 实战:从 MSIP 寄存器到 IMSIC 消息投递
linux·后端
GeW8 小时前
RHCE考试避坑指南"90%考生容易忽略的细节
linux
键盘会跳舞9 小时前
【C++多线程】死锁诊断工具实战:从 Windows 到 Linux 的全链路排查
linux·c++·windows·死锁
拂拉氏9 小时前
【知识讲解】 Linux环境变量的认识与使用
linux·环境变量
zhangrelay10 小时前
答疑-是否软件源问题都必须更换为国内呢-
linux·笔记·学习·ubuntu·ros2