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

编译成功

相关推荐
盐焗鹌鹑蛋1 小时前
【Linux】进程控制
linux
盐焗鹌鹑蛋3 小时前
【Linux】进程程序替换
linux
鸠摩智首席音效师3 小时前
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead
linux
tianyuanwo3 小时前
DevOps主机管理员视角:企业级Linux主机权限管理策略与实践
linux·服务器·devops
郭涤生3 小时前
Windows + Ubuntu 双系统启动故障修复
linux·windows·ubuntu
三言老师3 小时前
CentOS8 Firewalld 高级规则中级实操教程
linux·运维·服务器·网络·centos
tedcloud1235 小时前
Impeccable 部署指南:开源前端设计工具 Linux 环境搭建实践
linux·运维·服务器·前端·人工智能·开源
风曦Kisaki5 小时前
# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)
linux·笔记·云原生·容器·kubernetes
大黄说说5 小时前
SQL Server 执行计划怎么看?快速定位 SQL 慢的根源
java·linux·数据库
yunwei378 小时前
eBPF 教程:精准隔离已建立的 TCP 连接
linux·安全·开源