博客
关于我
itop4412调试记录
阅读量:339 次
发布时间:2019-03-04

本文共 1435 字,大约阅读时间需要 4 分钟。

Linux编程与开发实践记录

记录5:Linux 3.5内核移植报错,链接不存在

问题描述:在尝试编译Linux 3.5内核时,出现链接不存在的错误。错误提示指向了以下路径:

/CROSS_COMPILE ?=/home/cym/exynos4412/4.2/android4.2.2_JLB_PC4_CYIT/pre

解决思路

  • 确认交叉编译器路径:由于编译Linux 3.5内核需要使用Android 4.2.2源码自带的交叉编译器,需确保Android源码目录正确。将Android 4.2.2的源码包解压到Ubuntu虚拟机的/home/topeet/android目录下。

  • 解压内核源码:将内核压缩包iTOP-4412_Kernel-3.5_xxxxxxxx.tar.gz解压到Ubuntu系统中,生成linux-3.5文件夹。

  • 修改Makefile配置:在linux-3.5目录下找到并编辑Makefile文件,将以下行修改为:

  • CROSS_COMPILE ?=/home/topeet/android/android-4.2.2_r1/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    1. 编译内核:进入linux-3.5目录,执行make命令开始编译。
    2. 参考资料Android开发环境搭建及编译


      记录4:驱动教程——视频9,应用程序调用驱动出现Segmentation Fault

      问题描述:在编写应用程序调用驱动的代码时,出现Segmentation fault错误。

      解决思路

    3. 驱动程序逻辑错误:驱动程序中unlocked_ioctl赋值为1是错误的,正确应改为将hello_ioctl函数赋值给unlocked_ioctl

    4. 修正文件操作结构体:确保文件操作结构体hello_ops的定义正确,unlocked_ioctl应指向具体的函数。

    5. 编译验证:修改完成后,重新编译驱动程序,检查是否解决错误。


    6. 记录3:驱动教程——视频3,make menuconfig提示无ncurses库

      问题描述:运行make menuconfig时,提示无法找到ncurses库文件。

      解决思路

    7. 安装ncurses开发库:通过命令sudo apt-get install libncurses5-dev安装ncurses开发库。

    8. 切换为root用户:在以root用户身份运行make menuconfig,问题通常会消失。


    9. 记录2:第三章,无法挂载USB存储设备

      问题描述:使用命令mount /dev/sda1 /mnt/usb时,提示No such file or directory

      解决方法

    10. 确认挂载点:确保/dev/sda1存在,并以root用户身份挂载。

    11. 切换到根目录:在终端执行cd /,挂载命令必须在根目录下使用。


    12. 记录1:第二章,最小Linux系统,系统镜像烧写失败

      问题描述:使用fastboot.exe flash system system.img烧写系统镜像失败。

      解决方法

    13. 检查 USB下载端口:确保电脑端USB下载端口正常,重新连接设备。

    14. 验证系统文件:烧写成功后,检查系统是否能启动,特别是/system/bin/sh是否存在。

    15. 通过以上解决方法,逐一排查并修复各类开发和系统相关问题,能够顺利完成编译和开发任务。

    你可能感兴趣的文章
    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
    查看>>
    OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
    查看>>
    SQL--mysql索引
    查看>>
    OSChina 周四乱弹 ——程序员为啥要买苹果手机啊?
    查看>>
    OSChina 周日乱弹 —— 2014 年各种奇葩评论集合
    查看>>
    OSChina 技术周刊第十期,每周技术抢先看!
    查看>>
    OSError: no library called “cairo-2“ was foundno library called “cairo“ was foundno library called
    查看>>
    OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
    查看>>
    OSGi与Maven、Eclipse PlugIn的区别
    查看>>
    Osgi环境配置
    查看>>
    OSG——选取和拖拽
    查看>>
    OSG中找到特定节点的方法(转)
    查看>>
    OSG学习:C#调用非托管C++方法——C++/CLI
    查看>>
    OSG学习:几何体的操作(一)——交互事件、简化几何体
    查看>>
    OSG学习:几何体的操作(二)——交互事件、Delaunay三角网绘制
    查看>>
    OSG学习:几何对象的绘制(一)——四边形
    查看>>
    OSG学习:几何对象的绘制(三)——几何元素的存储和几何体的绘制方法
    查看>>
    OSG学习:几何对象的绘制(二)——简易房屋
    查看>>
    OSG学习:几何对象的绘制(四)——几何体的更新回调:旋转的线
    查看>>
    OSG学习:场景图形管理(一)——视图与相机
    查看>>