驱动程序开发:FTP服务器和OpenSSH的移植与搭建、以及一些笔记

这篇具有很好参考价值的文章主要介绍了驱动程序开发:FTP服务器和OpenSSH的移植与搭建、以及一些笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、FTP服务器移植与搭建

  将 ALPHA 开发板作为一个小型的 FTP 服务器,这样我们就可以通过 FileZilla 软件直接在开发板和 windows 之间通过网络进行文件互传。而在开发板上搭建 FTP 服务器很简单,就是 vsftpd 的移植。

1、在ubuntu下安装vsftpd

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

2、在window下安装FileZilla

  FileZilla官网下载,下载地址如下:点击链接。步骤省略。

3、移植vsftpd到开发板上

  现在需要在自己制作的根文件系统中安装 vsftpd,所以就需要我们自己移植 vsfpd。首先需要到 vsftpd 官网下载 vsftpd 源码,网址为:点击链接。

移植步骤及注意点:
  将 vsftpd-3.0.3.tar.gz 发送到 ubuntu 中,然后使用如下命令进行解压:

tar -vxzf vsftpd-3.0.3.tar.gz //解压缩

  解压缩完成以后会得到一个名为“vsftpd-3.0.3”的文件夹,然后进入此文件夹内。
  打开 Makefile,我们需要配置一下,修改 Makefile 中的 CC 变量为我们所使用的交叉编译器:

CC = arm-linux-gnueabihf-gcc //CC 为交叉编译器

  Makefile 修改完成以后就可以编译:

make //编译 vsftpd

  等待编译完成,会得到两个文件: vsftpd 和 vsftpd.conf,我们需要这两个文件。将 vsftpd 拷贝到开发板根文件系统下的/usr/sbin 目录下,将 vsftpd.conf 拷贝到开发板根文件系统的/etc 目录下。
  拷贝完成以后给予 vsftpd 可执行权限,并且修改 vsfptd.conf 所属用户为 root,命令如下:

chmod +x /usr/sbin/vsftpd
chown root:root /etc/vsftpd.conf

  修改vsftpd配置 ,允许本地用户注册和允许任何FTP写命令,操作如下:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  如果第一次添加用户的话要先将 ubuntu 下的/etc/passwd 和/etc/group 这两个文件复制到开发板根文件系统的对应目录,命令如下:

sudo cp /etc/passwd /home/djw/linux/nfs/rootfs/etc/ -f
sudo cp /etc/group /home/djw/linux/nfs/rootfs/etc/ -f

  然后修改开发板根文件系统中的/etc/passwd 和/etc/group 这两个文件,只保留“root”这一项。 passwd 文件“root”行最后改为“/bin/sh”, 修改后的 passwd 和 group 文件内容如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  vsftpd 默认需要两个用户,这两个用户名分别为:“ftp”和“nobody”。在创建这两个用户之前先检查一下下面几个文件和目录是否存在,如果不存在的话需要先创建下面这些文件和目录:

/home //目录,不存在的话自行创建
/usr/share/empty //目录,不存在的话自行创建
/var/log //目录,不存在的话自行创建
/var/log/vsftpd.log //文件,不存在的话自行创建

  创建命令如下:

mkdir /home
mkdir /usr/share/empty -p
mkdir /var/log -p
touch /var/log/vsftpd.log

  准备好以后就可以使用“adduser”命令创建“ftp”和“nobody”这两个用户,命令如下:(密码自定义即可)

adduser ftp //创建 ftp 用户
adduser nobody //创建 nobody 用户

  最后还需要创建一个登录用户, Filezilla 连接 FTP 服务器的时候一般需要输入用户名和密码,当然了, Filezilla 也支持匿名登录。使用用户名加密码登录的话就要创建一个用户,用户名自己定义,这里我创建一个名为“djw”的用户,命令如下:

adduser djw//创建登录要用户

  最终会在/home 目录下存在三个用户目录,分别对应“ftp”、“nobody”和“djw”,如下图所示
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

4、Filezilla 连接测试

  测试之前确保直接开发板网络连接正常,电脑可以 ping 通开发板!
  输入如下命令,启动 vsftpd 服务器:

vsftpd & //启动 vsftpd
这里也可以将”vsftpd &“指令添加到/etc/init.d/rsC文件下,让开发板开机自启动。

  vsftpd 启动以后就可以使用 filezilla 进行连接测试了,新建站点,站点设置如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  设置好以后就可以连接了,连接成功以后如下图所示:文件拖拉即可传输文件
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

5、注意点

  如果使用FileZilla软件连接开发板时出现了500 OOPS: cannot change directory:/home/*******这样的错误信息,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  其实就是/home/djw这个目录权限不够,那我们可不可以将该目录直接”chmod 777 /home/djw“呢? 经过验证是不行的。因此我们需要在vsftpd.conf配置文件添加以下内容,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

二、开发板 OpenSSH 移植与使用

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  openssh库依赖于zlib 库 和 openssl 库。

1、移植 zlib 库

  zlib 源码下载地址为:点击链接,拷贝到 ubuntu 中并解压,命令如下:

tar -vxzf zlib-1.2.11.tar.gz //解压

  解压完成以后得到一个名为“zlib-1.2.11”的 zlib 源码文件。另外新建一个名为“zlib”的文件夹来保存 zlib 的编译结果。进入 zlib 源码目录,然后配置并编译,命令如下:

cd zlib-1.2.11/ //进去 zlib 源码
CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld AD=arm-linux-gnueabihfas ./configure --prefix=/home/djw/linux/IMX6ULL/tool/zlib //配置
make //编译
make install

  编译、安装完成以后的 zlib 目录内容如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  将上图中的 lib 目录下的 zlib 库文件拷贝到开发板根文件系统的/lib 目录下,命令为:

sudo cp lib/* /home/djw/linux/nfs/rootfs/lib/ -rfa

2、移植 openssl 库

  openssl 源码下载地址为:点击链接
  将 openssl 源码压缩包拷贝到 Ubuntu 中前面创建的 tool 目录下,然后使用如下命令将其解压:

tar -vxzf openssl-1.1.1d.tar.gz

  解压完成以后就会生成一个名为 openssl-1.1.1d 的目录,然后在新建一个名为“openssl”的文件夹,用于存放 openssl 的编译结果。进入到解压出来的 openssl-1.1.1d 目录中,然后执行如下命令进行配置:

./Configure linux-armv4 shared no-asm --prefix=/home/djw/linux/IMX6ULL/tool/openssl CROSS_COMPILE=arm-linux-gnueabihf-

  上述配置中“ linux-armv4”表示 32 位 ARM 凭条,并没有“ linux-armv7”这个选项。CROSS_COMPILE 用于指定交叉编译器。配置成功以后会生成 Makefile,输入如下命令进行编译:

make
make install

  编译安装完成以后的 openssl 目录内容如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  将图 上图中的 lib 目录是我们需要的,将 lib 目录下的 libcrypto 和 libssl 库拷贝到开发板根文件系统中的/usr/lib 目录下,命令如下:

sudo cp libcrypto.so* /home/djw/linux/nfs/rootfs/lib/ -af
sudo cp libssl.so* /home/djw/linux/nfs/rootfs/lib/ -af

3、移植 openssh 库

  openssh 源码下载地址为:点击链接,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  先解压 openssh 源码,命令如下:

tar -vxzf openssh-8.2.tar.gz

  解压完成以后就会生成一个名为“openssh-8.2”的文件夹,进入此文件夹里面,然后配置并编译 openssh,命令如下:

cd openssh-8.2/
./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/djw/linux/IMX6ULL/tool/zlib --with-ssl-dir=/home/djw/linux/IMX6ULL/tool/openssl --disable-etcdefault-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar //配置
make //编译

  在配置 openssh 的过程中,“–with-zlib”参数用于指定 zlib 库所在的目录,“–with-ssl-dir”参数用于指定 openssl 库所在的目录,编译 openssh 的时候不用“make install”。

  openssh 交叉编译完成以后在开发板中创建如下所示目录(如果存在的话就不需要创建):

/usr/local/bin
/usr/local/sbin
/usr/local/libexec
/usr/local/etc
/var/run
/var/empty

  创建命令如下:

mkdir /usr/local/bin -p
mkdir /usr/local/sbin -p
mkdir /usr/local/libexec/ -p
mkdir /usr/local/etc -p
mkdir /var/run -p
mkdir /var/empty/ -p

  上述目录创建好以后将如下文件拷贝到开发板的/usr/local/bin 目录下:
scp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan
  将如下文件拷贝到开发板的/usr/local/sbin 目录下:
sshd
  将如下文件拷贝到开发板的/usr/local/etc 目录下:
moduli、ssh_config、sshd_config
  将如下文件拷贝到开发板的/usr/local/libexec 目录下:
sftp-server、ssh-keysign
  创建软连接,进入开发板中的/bin 目录下,输入如下命令创建软连接:

cd /bin/
ln -s /usr/local/bin/scp
ln -s /usr/local/bin/sftp
ln -s /usr/local/bin/ssh
ln -s /usr/local/bin/ssh-add
ln -s /usr/local/bin/ssh-agent
ln -s /usr/local/bin/ssh-keygen
ln -s /usr/local/bin/ssh-keyscan

  再进入开发板的/sbin 目录下,输入如下命令创建软连接:

cd /sbin/
ln -s /usr/local/sbin/sshd

  软连接创建完成以后就可以直接调用上面 ssh 相关命令了。
  打开/usr/local/etc/sshd_config 文件,找到“#PermitRootLogin”所在行,将其改为“PermitRootLogin yes”。

  当所需的文件都存在以后就可以使用 adduser 创建名为“sshd”的用户了,创建 sshd 用户的时候需要设置密码,大家一定要记得这个密码,这里我设置简单一点,为“123456”,创建过程如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  一切准备好以后我们还需要在开发板中生成秘钥文件,使用我们上面移植 openssh 所编译出来的 ssh-keygen 软件即可。进入到开发板的/usr/local/etc 目录下,输入如下所示命令生成秘钥文件,由于 6ULL 性能比较差,有些秘钥文件生成过程可以会有点耗时,打开几十秒:

ssh-keygen -t rsa -f ssh_host_rsa_key -N “”
ssh-keygen -t dsa -f ssh_host_dsa_key -N “”
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N “”
ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N “”

完成以后就会在/usr/local/etc 目录下产生 8 个以“ssh_host_”开头的秘钥文件,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

4、openssh 使用测试

  openssh 移植已经移植到了开发板中,我们可以通过 sshd 软件在开发板上搭建 openssh 服务器,然后在其他的主机上通过 ssh 来登录开发板。我们可以同样使用 scp 命令来向开发板传输文件。首先要在开发板上启动 ssh 服务, sshd 软件用于启动 ssh 服务,注意要输入全路径!输入如下命令:

/sbin/sshd //启动 sshd 服务
也可以在/etc/init.d/rcS 文件中加入以上命令,实现 ssh 服务开机自启动。

  使用XobaXterm软件的SSH工具远程登陆开发板,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  也可以在 ubuntu 下通过 ssh 命令登录开发板,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  使用scp 命令拷贝文件,例如把ubuntu中的文件发送给开发板中,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  上图出现无效连接,这是因为/dev/null文件拒绝访问了,我们先看看开发板根文件系统下的/dev/null文件的信息,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  由上图可知,/dev/null文件只有文件所以者和用户组拥有读和写的权限,其他用户是没有权限的,因此导致ubuntu这边是没有权限操作的,所以我们需要给/dev/null文件增加其他用户的读写权限,因为每次系统重新启动,该文件权限会恢复默认的,所以我们需要在系统启动后给它赋予其他用户的读写权限,操作是:在/etc/init.d/rcS脚本文件中添加"chmod 666 /dev/null"即可。
  那么再次重新传输文件,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
  已经文件传输成功了。

三、关于u-boot上的操作及根文件系统下的脚本文件知识点

简介:
Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH, SD, MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。当然了,bootloader 的实际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核, bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样, bootloader 就相当于 BIOS。
Linux开发板中,EMMC是有3个分区的,第0个分区存放uboot;第1个分区存放Linux镜像文件和设备树文件;第2个分区存放根文件系统。

命令使用:

1、bdinfo - 查看开发板的相关信息

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

2、pri – 查看环境变量

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

3、version – 查看uboot版本信息

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

4、setenv name xxx; saveenv – 设置环境变量,并保存

  例如设置uboot倒计时设置为5秒,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

5、dhcp 用于从路由器获取 IP 地址

  前提得开发板连接到路由器上的,如果开发板是和电脑直连的,那么 dhcp 命令就会失效。直接输入 dhcp 命令即可通过路由器获取到 IP 地址,如下图所示:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

6、uboot中的nfs命令格式如下所示:

nfs [loadAddress] [[hostIPaddr:]bootfilename]

  使用 nfs 命令来将 zImage 下载到开发板 DRAM 的 0X80800000 地址处,命令如下:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

7、uboot中的tftp命令格式如下所示:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

  将 Ubuntu中的tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,命令如下:
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

8、查看当前开发板一共有几个 MMC 设备

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

9、切换当前 MMC 设备

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

10、查看 EMMC 的分区情况

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

11、mmc write 命令烧写数据到SD设备或者EMMC中

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

12、查询指定 MMC 设备分区的文件系统信息

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

13、查询 FAT 格式设备的目录和文件信息

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

14、查看 MMC 设备某个分区的文件系统格式

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
15、 用于将指定的文件读取到 DRAM 中
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

16、fatwrite 命令

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

17、通过tftp方式下载Linux镜像和设备树,然后通过bootz启动Linux系统

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

18、使用命令 fatload 将 zImage 和 imx6ull-14x14-emmc-7-1024x600-c.dtb 从EMMC 的分区 1 中拷贝到 DRAM 中,启动 Linux 系统

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

19、bootm命令

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

20、 环境变量 bootargs

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式

21、USB WIFI启动

modprobe 8188eu.ko //加载 RTL8188 驱动模块
ifconfig wlan0 up //打开 wlan0 网卡
iwlist wlan0 scan //搜索当前环境下的所有 WIFI 热点
//使用 wpa_supplicant 工具让 RTL8188 USB WIFI 连接到热点上。
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
udhcpc -i wlan0 //从路由器获取 IP 地址
ping -I 192.168.43.26 www.baidu.com //ping百度

22、开发板Linux启动方式

uboot 启动Linux内核和设备树,根文件系统的加载在emmc内部/dev/nfs 设置:
setenv ipaddr 192.168.1.119 //开发板IP地址
setenv ethaddr b8:ae:1d:01:00:00 //开发板的 MAC 地址
setenv gatewayip 192.168.1.1 //开发板网关
setenv netmask 255.255.255.0 //子网掩码
setenv serverip 192.168.1.111 //服务器IP地址,例如ubuntu的
setenv dnsip 114.114.114.114 //设置DNS域名
setenv bootdelay 5 //设置boot启动延时5秒
使用nfs远程挂载根文件系统到开发板上:
setenv bootargs ‘console=tty1 console=ttymxc0,115200 rw root=/dev/nfs nfsroot=192.168.1.111:/home/djw/linux/nfs/rootfs ip=192.168.1.119:192.168.1.111:192.168.1.1:255.255.255.0::eth0:off’
使用tftp下载linux内核、设备树到开发板DRAM中,再启动
setenv bootcmd ‘tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000;’
saveenv //保存环境变量

在emmc启动的,根文件系统的加载在emmc内部/dev/mmcblk1p2
setenv bootcmd ‘mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-14x14-evk.dtb;bootz 80800000 - 83000000;’
根文件系统在EMMC启动
setenv bootargs ‘console=tty1 console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw ip=192.168.1.119:192.168.1.111:192.168.1.1:255.255.255.0::eth0:off’

23、关于根文件系统中/etc/init.d/rcS、 /etc/fstab、 /etc/inittab文件的知识点

移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式
移植sftp,Linux驱动开发,linux,ubuntu,驱动开发,服务器,嵌入式文章来源地址https://www.toymoban.com/news/detail-707341.html

到了这里,关于驱动程序开发:FTP服务器和OpenSSH的移植与搭建、以及一些笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 驱动开发基础知识——Hello驱动程序(一)

     个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导

    2024年01月19日
    浏览(41)
  • Linux 驱动开发基础知识——认识LED驱动程序 (二)

     个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导

    2024年01月21日
    浏览(39)
  • 这个设备(服务)的驱动程序已被禁用。另一个驱动程序可以提供这个功能。(代码32)

    今天拿到一台笔记本,插上U盘没有反应,进【设备管理器】发现【USB大容量存储设备】有个黄色的叹号。   鼠标右键【USB大容量存储设备】打开属性查看信息,显示设状态“这个设备(服务)的驱动程序已被禁用。另一个驱动程序可以提供这个功能。(代码32)”   研究了

    2024年02月11日
    浏览(54)
  • 嵌入式Linux驱动开发 02:将驱动程序添加到内核中

    在上一篇文章 《嵌入式Linux驱动开发 01:基础开发与使用》 中我们已经实现了最基础的驱动功能。在那篇文章中我们的驱动代码是独立于内核代码存放的,并且我们的驱动编译后也是一个独立的模块。在实际使用中将驱动代码放在内核代码中,并将驱动编译到内核中也是比较

    2023年04月09日
    浏览(73)
  • 利用Springboot来驱动开发桌面程序

    众所周知,SpringBoot是一款强大的Javaweb开发程序,这得益于其构造了一个Spring容器,然后通过依赖注入和控制反转,维护起一套Java对象和实例的管理机制,方便开发者去使用。在web应用开发的应用中,Springboot在Java层应用非常广,同样的,也可以利用SpringBoot来编写桌面程序。

    2024年02月05日
    浏览(73)
  • Ftp服务器、 Samba服务器、NFS服务器的区别

    根据使用的方式来看,可以分为3种类别的文件服务器:ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器。ftp的客户可以是任意平台,samba是专门针对windows客户,而NFS则是面向linux/unix用户的。下面是三种服务器的对比情况: 各个服务器的配置 NFS服务器: NFS是SUN Microsystem公司开发

    2024年02月03日
    浏览(53)
  • 【IMX6ULL驱动开发学习】02.hello驱动程序之cdev注册字符设备驱动程序和设置次设备号

    目录 一、register_chrdev 二、解决方法 2.1 alloc_chrdev_region函数:注册一系列字符设备编号 2.2 cdev_init函数:初始化cdev结构体  2.3  cdev_add函数:将字符设备添加到系统中  三、驱动程序 【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)_阿龙还

    2024年02月14日
    浏览(40)
  • Linux 驱动开发基础知识——LED 模板驱动程序的改造:设备树(十一)

     个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导航: 妄北y系列专栏导航: C/C++的基

    2024年02月21日
    浏览(44)
  • Windows 驱动程序签名教程(一) --- 开发测试篇

    1.使用微软WHQL签名 2.使用2013-2015年签发的驱动签名,已过期未吊销未拉黑(不知道什么时候打个补丁会修复). 1.使用微软WHQL签名 2.使用过期签名的sha1 sha256都可以正常跑 1.使用微软WHQL签名,SHA256的签名需要打补丁支持(KB3033929). 2.SHA1签名 1.Windows 10 可以直接 输入命令: 2.如果还不

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包