分类 Linux 下的文章

问题

手动设置了 ip 地址后,直接 ping baidu 是不通的,但是 ping baidu 对应的 ip 地址是可以的,说明问题出在 dns 上面。 但是自动设置的时候,是可以正常工作的。

解决方法

ubuntu 14 这个版本,可以通过设置里面的 网络图标,进去可以看到当前 自动模式对应的 dns 服务器,把相应的服务器手动填写到手动模式对应的文本框里面,即可。

重启网络,sudo /etc/init.d/networking restart 提示失败,可以 sudo NetworkManager restart 来获取对应的 pid,然后 kill 掉,再 sudo NetworkManager restart 一下即可。

参考:

ubuntu提示错误stop: Job failed while stopping
https://blog.csdn.net/qq_23926575/article/details/76862566

ubuntu修改配置IP地址和DNS的方法总结(4种)
https://blog.csdn.net/davidhzq/article/details/102991577

virtual box 设置加大空间

管理 -> 虚拟介质管理,把里面的硬盘空间拉大。

linux 分配加大的空间

  • sudo apt install gparted 安装分区工具
  • 打开分区工具,在 extened 上面右键选择 resize,然后把剩余的容量全部加上去。
  • /dev/sda5 上面右键选择 resize,然后把剩余的容量全部加上去。
  • 点击工具栏的勾,就可以执行扩容了。
  • df -h 检查一下容量对不对。

参考:

为VirtualBox下Linux-Ubuntu虚拟机增加虚拟硬盘容量(傻瓜化操作,全程UI下完成)
https://www.cnblogs.com/r0xFED/p/12121724.html

参考:

udelay、mdelay、ndelay、msleep使用比较说明
https://www.cnblogs.com/Ph-one/p/4678361.html

arm体系下的cpu_relax()函数疑惑
http://www.wowotech.net/forum/viewtopic.php?id=21#:~:text=cpu_relax%E5%BF%85%E9%A1%BB%E5%85%B7%E5%A4%87%E4%B8%A4%E4%B8%AA%E5%8A%9F%E8%83%BD%EF%BC%9A%201%E3%80%81%E7%A1%AE%E4%BF%9D%E5%AF%B9flag%E7%9A%84%E8%AE%BF%E9%97%AE%E6%AF%8F%E6%AC%A1%E9%83%BD%E4%BB%8Ememory%E4%B8%AD%E5%8A%A0%E8%BD%BD%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AFbarrier,%28%29%E5%87%BD%E6%95%B0%E7%9A%84%E4%BD%9C%E7%94%A8%202%E3%80%81%E9%80%9A%E7%9F%A5%E5%BA%95%E5%B1%82CPU%EF%BC%8C%E7%9B%AE%E5%89%8D%E4%BB%A3%E7%A0%81%E6%B2%A1%E6%9C%89%E5%9C%A8%E5%81%9A%E4%BB%80%E4%B9%88%E5%AE%9E%E9%99%85%E6%9C%89%E6%84%8F%E4%B9%89%E7%9A%84%E4%BA%8B%E6%83%85%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%8F%AF%E4%BB%A5%E7%9A%84%E8%AF%9D%EF%BC%8C%E5%88%AB%E8%AE%A9cpu%E5%81%9A%E5%A4%AA%E5%A4%9A%E4%BA%8B%E6%83%85%EF%BC%8C%E7%B3%BB%E7%BB%9F%E7%9A%84%E8%B5%84%E6%BA%90%E5%B0%BD%E9%87%8F%E8%AE%A9%E7%BB%99%E5%85%B6%E4%BB%96%E7%9A%84cpu%E3%80%82

转自: https://blog.csdn.net/vagrant2005/article/details/6561795

Ubuntu 终端下默认的编辑器为 nano。比如输入命令“crontab -e”就会打开 nano。不过我们在学会使用 Vim 以后可能就不愿意在使用 nano 了。那么怎么才能直接就调用 Vim 编辑器来编辑呢?只需要修改一个配置我们就可以做到。操作步骤如下:

内容来自Linuxren.net

  打开一个终端,在其中输入如下命令: copyright Linuxren.net

    $ sudo update-alternatives –config editor copyright Linuxren.net

  然后在返回的对话中选择第 4 项 vim.basic 。或者还可以直接执行这个命令: 内容来自Linuxren.net

    echo export EDITOR=/usr/bin/vim >> ~/.bashrc
内容来自Linuxren.net

  来实现我们的需求。 本文来自Linuxren.net

设备树规范翻译
https://blog.csdn.net/caihaitao2000/article/details/83960823

Android驱动之设备树简介
https://www.cnblogs.com/yejintianming00/p/9339754.html

设备树用法(Device Tree Usage)中文
https://www.cnblogs.com/fred2018/p/9668975.html

设备树(device tree)学习笔记
https://www.cnblogs.com/pengdonglin137/p/4495056.html

Linux设备树中文手册
https://blog.csdn.net/weixin_38503722/article/details/77409735

修改安装源

settings -> software updater -> settings -> ubuntu software -> download from -> other -> 选择中国下面的即可,我选的是 ftp.sjtu.edu.cn.
如果是 20.04,那么是在 settings -> about -> software updates 里面

安装语言包

settings -> language support -> install / remove languages -> 选择 chinese 即可。 如果是 20.04,那么是在 settings -> region & language -> manage installed languages

使能中文输入法

settings -> settings -> region & language -> input sources -> 增加 pinyin 即可。

如果希望是紫光双拼,可以点击 pinyin 右边的配置按钮, pin mode -> double pinyin -> ZGPY 即可。

如果是 20.04,注意,需要先把语言切换到中文,重启之后,才能按照智能拼音,否则不能安装。 安装智能拼音完成后,再把语音切换回英语即可。

参考:

https://zhuanlan.zhihu.com/p/111734450
https://blog.csdn.net/weixin_42342813/article/details/107298944
https://www.cnblogs.com/MineLSG/p/12663378.html
https://blog.csdn.net/CPOHUI/article/details/101486041

转自: https://blog.csdn.net/qq_27677015/article/details/53415848

一、描述

ARM Device Tree起源于OpenFirmware (OF),在过去的Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data。为了改变这种局面,Linux社区的大牛们参考了PowerPC等体系架构中使用的Flattened Device Tree(FDT),也采用了Device Tree结构,许多硬件的细节可以直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。

Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。在Linux 2.6中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,采用Device Tree后,许多硬件的细节可以直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。

Device Tree由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括(原先这些信息大多被hard code到kernel中):

  • CPU的数量和类别
  • 内存基地址和大小
  • 总线和桥
  • 外设连接
  • 中断控制器和中断使用情况
  • GPIO控制器和GPIO使用情况
  • Clock控制器和Clock使用情况

它基本上就是画一棵电路板上CPU、总线、设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵树,并根据它展开出Linux内核中的platform_device、i2c_client、spi_device等设备,而这些设备用到的内存、IRQ等资源,也被传递给了内核,内核会将这些资源绑定给展开的相应的设备。

通常由.dts文件以文本方式对系统设备树进行描述,经过Device Tree Compiler(dtc)将dts文件转换成二进制文件binary device tree blob(dtb),.dtb文件可由Linux内核解析,有了device tree就可以在不改动Linux内核的情况下,对不同的平台实现无差异的支持,只需更换相应的dts文件,即可满足。

- 阅读剩余部分 -

转自: https://cloud.tencent.com/developer/article/1855138

整理出了6种驱动开发时与设备注册、设备树相关的调试方法,彼此间没有优先级之分,每种方法不一定是最优解,但可以作为一种debug查找问题的手段,快速定位问题原因。例如在芯片验证时,不同时钟频率下系统启动情况摸底时,U-Boot fdt命令可以方便快捷的帮助我们完成这个实验。

- 阅读剩余部分 -

有时候需要 linux 目录下文件分别打包,再分别解包,就需要用到 shell 中的 for 语句进行循环了。 当目录中有空格的时候,也容易发生报错,容易把一个目录名分隔为两个目录名,这时候就需要设置 IFS 这个值了。

具体测试可用的打包脚本如下:

#!/bin/bash

IFS=$'\n'

function tar_dir() {
for file in `ls -a $1`
        do
                if [ "$file" != "." -a "$file" != ".." ]; then
                        echo $file
                        tar cvf ${file}.tar $1"/"$file
                        echo "$file" >> tar_done.txt
                fi
        done
}

tar_dir $1

参考

https://blog.csdn.net/qq_40806289/article/details/114919068
https://blog.csdn.net/qq_28686911/article/details/115410830
https://blog.csdn.net/mr_leehy/article/details/76383091
https://blog.csdn.net/zhan570556752/article/details/80399154
https://blog.csdn.net/iamlihongwei/article/details/59114828