Linux中编译squash文件系统出错

本文介绍了解决因liblzma.so.5库文件缺失导致的编译错误的方法。作者在编译一个32位的SDK时遇到该问题,并通过下载适配版本的liblzma5库文件并正确配置解决了此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天接触了一个新的SDK,编译的时候发现出现以下错误:

./mksquashfs:error while loading shared libraries: liblzma.so.5: cannot open shared objectfile: No such file or directory

照字面上的意思,很明显是缺少一个库文件liblzma.so.5。但是翻了几遍SDK,也没发现有提供这个文件或者安装文件。apt-get安装了一个lzma发现还是没有效果。。。原来自己开发环境为ubuntu10.04 64位,SDK的为32位的版本,显然不适配。google了下lzma,找到一个ubuntu可下载的网址:

http://packages.ubuntu.com/zh-cn/precise/i386/liblzma5/download

下载liblzma5_5.1.1alpha+20110809-3_i386.deb ,直接在windows下解压之,拷贝解压出的 liblzma.so.5.0.0 到linux的 lib目录下。命令行敲入:

ln -s /lib/liblzma.so.5.0.0 /lib/liblzma.so.5

生成一个新的到liblzma.so.5.0.0的连接liblzma.so.5,然后命令行执行

ldconfig

最后再重新编译sdk,编译通过!


### 如何在嵌入式 Linux 系统上挂载 NFS #### 准备工作 为了使嵌入式设备能够通过NFS协议访问远程服务器上的根文件系统,需先确认内核已编译进必要的模块。具体来说,在配置内核选项时应确保启用了如下功能: - **Network File Systems** - `<*> NFS client support` - `[*] NFS client support for NFS version 3` - `[*] NFS client support for NFS version 4 (EXPERIMENTAL)` - `[*] NFS client support for NFSv4.1 (DEVELOPER ONLY)` - `[*] Root file system on NFS`[^3] #### 主机端设置 对于提供服务的一方——通常是PC端,需要完成以下操作来启动并配置好NFS服务。 - 安装所需的软件包: ```bash sudo apt-get update && sudo apt-get install nfs-kernel-server nfs-common ``` - 创建用于共享给客户端使用的目录,并赋予适当权限 ```bash mkdir /home/tsanfer/share chmod -R 755 /home/tsanfer/share/ chown nobody:nogroup /home/tsanfer/share/ ``` - 编辑 `/etc/exports` 文件加入要分享出去的路径以及对应的权限设定 ``` /home/tsanfer/share *(rw,sync,no_subtree_check,no_root_squash) ``` - 应用新的导出表项 ```bash exportfs -a ``` - 启动或重启NFS服务以生效更改 ```bash systemctl restart nfs-kernel-server.service ``` #### 嵌入式Linux开发板侧的操作 接下来是在目标机器也就是嵌入式Linux开发板这边执行相应的命令来进行实际的挂载动作。 - 如果尚未分配固定的IP地址,则建议为此目的指定一个静态IP以便后续管理更加方便[^4]. - 接下来创建本地的一个空目录作为即将映射过来的数据存储位置 ```bash mkdir /mnt/nfsroot ``` - 使用 mount 工具尝试手动方式连接至远端的服务节点 ```bash mount -t nfs -o nolock <server-ip>:/home/tsanfer/share /mnt/nfsroot ``` 如果一切正常的话现在应该可以在/mnt/nfsroot看到来自服务器的内容了;反之则可能遇到了某些错误提示信息,这时可以根据具体情况排查解决。 为了让上述过程能够在每次开机之后自动重复一次,可以考虑编辑/etc/fstab文件增加一行记录描述该持久化行为: ``` <server-ip>:/home/tsanfer/share /mnt/nfsroot nfs defaults,nolock,bg,intr,tcp,actimeo=1800 0 0 ``` 这样当系统重新引导起来以后就会按照这里的定义去查找可用的NFS资源并且将其加载进来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值