精华内容
下载资源
问答
  • 树莓派默认的虚拟内存大小才100M,有时候我们需要扩大它,树莓派虚拟内存配置文件和debian默认的位置不一样,所以这里我们修改的是/etc/dphys-swapfile sudo nano /etc/dphys-swapfile 将这一行的100修改为你想要...

    树莓派默认的虚拟内存大小才100M,有时候我们需要扩大它,树莓派的虚拟内存配置文件和debian默认的位置不一样,所以这里我们修改的是/etc/dphys-swapfile

    sudo nano /etc/dphys-swapfile
    

    将这一行的100修改为你想要的值,单位是兆(M)

    CONF_SWAPSIZE=100
    

    保存退出后,运行

    sudo /etc/init.d/dphys-swapfile restart
    

    重启dphys-swapfile服务,然后使用命令

    free -h
    

    或者

    htop
    

    查看是否成功。

    展开全文
  • 摘自:... 看了他的这篇顺着找到的 ... 树莓派上编译安装realsense经验 ...侯增涛 2019-05-30 10:48:10 1006 收藏 2 ...分类专栏: 树莓派 ...1.树莓派系统一定要用realsense官方指定的ubun..

    摘自:https://blog.csdn.net/weixin_44345862/article/details/90693074

    看了他的这篇顺着找到的

    https://blog.csdn.net/weixin_44345862/article/details/90696256

     

    树莓派上编译安装realsense经验

     

    侯增涛 2019-05-30 10:48:10 1006 收藏 2

    分类专栏: 树莓派

    版权

    1.树莓派系统一定要用realsense官方指定的ubuntu mate,树莓派B3+只能装18.0.4,树莓派B3和以前的只能装16.0.4
    2.不要妄想装realsense的非编译版本(官网说打包好的dpkg,那是针对ubuntu电脑板的,需要arm64位CPU硬件的)到树莓派,树莓派的CPU硬件是armhf,需要从新在上边编译安装(cmake,make && make install)。
    3.树莓派默认分配给系统的内存只有1个G,在realsense编译(make)时根本不够用,过程中,系统会强制杀死编译进程导致失败,需要在闪存卡上建立虚拟内存。ubuntu mate操作如下(其它版本好像有两种办法,也可以这样,也可以用修改/etc/dphys-swapfile文件中的CONF_SWAPSIZE的办法,但ubuntu mate只能如下):

    关闭交换分区(var文件夹下有个swapfile文件,其内部跟swap相连。因为带了路径,所以在当前用户目录下运行即可)

    sudo swapoff /var/swap 或者这句 sudo swapoff /var/swapfile

    新建 1GB 的 swap 空间=bs*count

    sudo dd if=/dev/zero of=/var/swapfile bs=1M count=1024 (这句比较耗时,十几分钟,耐心等待)
    sudo mkswap /var/swapfile (格式化)

    检查格式化成功没,使用free命令,
    输入:free -m
    输出内容如下:
    total used free shared buff/cache available
    Mem: 925 185 28 14 711 660
    Swap: 0 0 0
    Swap一行都是0,说明成功。

    接着修改权限(可能不修改也行):

    sudo chown root:root /var/swapfile
    sudo chmod 0600 /var/swapfile

    开启交换分区(必须开启才能有效)

    sudo swapon /var/swapfile

    查看是否建立成功,并开始运行:
    free -m
    输出如下:
    total used free shared buff/cache available
    Mem: 925 328 56 32 541 502
    Swap: 1023 0 1023
    Swap大小为1023,说明成功。

    此时可以编译realsense了!

    切记以上不要重启,否则需要再运行sudo swapon /var/swapfile 开启虚拟内存。如果想开机自动运行虚拟内存请看下面,改配置文件,我觉得没必要,需要用时开启就行,没必要霸占1G。

    已下内容不重要,可忽略:

    sudo nano /etc/fstab
    #追加下一行内容设置自动挂载
    /var/swapfile none swap defaults 0 0
    #改完后需要重启后生效,为了不重启可以用下面的命令
    mount -a
    查看当前已生效的 swap
    swapon -s
    #查看当前 swap 使用情况
    free -m

    展开全文
  • 树莓派虚拟内存调整3.2 解决方案 1. Ubuntu mate 16.04系统下载 官方目前还没有适用于树莓派3B+的Ubuntu mate 系统,参考官网教程,需要修改部分驱动,鉴于修改太麻烦,在这里直接将修改后的Ubuntu mate16.04系统...


    1. Ubuntu mate 16.04系统下载

    官方目前还没有适用于树莓派3B+的Ubuntu mate 系统,参考官网教程,需要修改部分驱动,鉴于修改太麻烦,在这里直接将修改后的Ubuntu mate16.04系统分享给大家:

    系统镜像下载链接:https://linux.softpedia.com/get/Linux-Distributions/Ubuntu-MATE-Wily-Werewolf-103767.shtml

    安装比较容易,大家可以自己在网上搜索相关教程。


    2. 树莓派扩容

    2.1 问题描述

    树莓派编译、下载程序时出现如下提示,说明树莓派使用的内存不够用。虽然树莓派上插的SD卡内存较大,但是在其上安装的Ubuntu mate 16.04系统并没有充分利用SD卡内存,还有大部分内存

    fatal:write error: No space left on device
    

    2.2 解决方案

    fdisk /dev/mmcblk0
    
    执行命令:d  (删除分区3)
    
    执行命令:p (按这时候应该是少了一个分区了)
    
    执行命令:n  (加分区)
    
    执行命令:p (主要分区)
    
    直接回车
    
    后面的值默认即可
    
    执行命令:p
    
    执行命令:w
    
    然后reboot 
    
    执行命令: resize2fs /dev/mmcblk0p3
    
    执行df -h查看
    

    结束

    3. 树莓派虚拟内存调整

    Virtual memory exhausted:Cannot allocate memory
    

    3.2 解决方案

    安装dphys-swapfile软件包,安装后默认设置的swap大小为物理内存的两倍,最大为2G。

    sudo apt-get install dphys-swapfile
    
    展开全文
  • 树莓派的/proc/文件夹中有各种虚拟文件,可以用来读取系统的各种数据。 下面以读取内存使用率、CPU使用率、CPU温度为例进行演示,用JSP页面实现。代码中的说明部分写明了所要读取的文件和计算方法。 代码片段: &...

    树莓派的/proc/文件夹中有各种虚拟文件,可以用来读取系统的各种数据。

    下面以读取内存使用率、CPU使用率、CPU温度为例进行演示,用JSP页面实现。代码中的说明部分写明了所要读取的文件和计算方法。

    代码片段:

    <%@ page language="java" pageEncoding="utf-8" import="java.io.BufferedReader, java.io.FileReader, java.util.*"%>
    
    <%--statebar info start--%>
            <%--
                -function:get memery usage
                -method:(read /proc/meminfo)
                -calculation:
                    total memery = MemTotal
                    mem free = MemFree + Buffers + Cached
                    mem usage = MemTotal - mem free
            --%>
            <%
                FileReader fr_mem_usage=new FileReader("/proc/meminfo");
                BufferedReader br_mem_usage=new BufferedReader(fr_mem_usage);
                String s_mem_total=br_mem_usage.readLine();
                String s_mem_free=br_mem_usage.readLine();
                String s_mem_buffers=br_mem_usage.readLine();
                String s_mem_cached=br_mem_usage.readLine();
                String[] s_mem_total_array = s_mem_total.split("\\s+");
                String[] s_mem_free_array = s_mem_free.split("\\s+");
                String[] s_mem_buffers_array = s_mem_buffers.split("\\s+");
                String[] s_mem_cached_array = s_mem_cached.split("\\s+");
                
                int mem_total = Integer.parseInt(s_mem_total_array[1]);
                int mem_free = Integer.parseInt(s_mem_free_array[1]);
                int mem_buffers = Integer.parseInt(s_mem_buffers_array[1]);
                int mem_cached = Integer.parseInt(s_mem_cached_array[1]);
    
                int memUsage = 100 - (100 * (mem_free + mem_buffers + mem_cached) / mem_total);
    
                fr_mem_usage.close();
                br_mem_usage.close();
            %>
            
            <%--
                -function:get cpu usage
                -method:(read /proc/stat)
                -calculation:
                    CPU total time=user+nice+system+idle+iowait+irq+softirq
                    cpu usage=(idle2-idle1)/(cpu2-cpu1)*100
                    OR cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100
            --%>
            <%
                FileReader fr_cpu_usage1=new FileReader("/proc/stat");
                BufferedReader br_cpu_usage1=new BufferedReader(fr_cpu_usage1);
                String s_cpu_usage1=br_cpu_usage1.readLine();
                String[] s_cpu_usage_array1 = s_cpu_usage1.split("\\s+");
                int f_cpu_usage_array1[] = new int[7];
                for(int i=1;i<=7;i++){
                    f_cpu_usage_array1[i-1] = Integer.parseInt(s_cpu_usage_array1[i]);
                }
                fr_cpu_usage1.close();
                br_cpu_usage1.close();
    
                Thread.sleep(100);      
            
                FileReader fr_cpu_usage2=new FileReader("/proc/stat");
                BufferedReader br_cpu_usage2=new BufferedReader(fr_cpu_usage2);
                String s_cpu_usage2=br_cpu_usage2.readLine();
                String[] s_cpu_usage_array2 = s_cpu_usage2.split("\\s+");
                int f_cpu_usage_array2[] = new int[7];
                for(int i=1;i<=7;i++){
                    f_cpu_usage_array2[i-1] = Integer.parseInt(s_cpu_usage_array2[i]);
                }
                fr_cpu_usage2.close();
                br_cpu_usage2.close();
    
                int cputotal1=0,cputotal2=0,idle1=0,idle2=0,cpuUsage=0;
                for(int i=0;i<=6;i++){
                    cputotal1 = cputotal1 + f_cpu_usage_array1[i];
                }
                for(int i=0;i<=6;i++){
                    cputotal2 = cputotal2 + f_cpu_usage_array2[i];
                }
                idle1 = f_cpu_usage_array1[3];       
                idle2 = f_cpu_usage_array2[3];
                cpuUsage = 100 - (100 * (idle2 - idle1)/(cputotal2 - cputotal1));
            %>
            
            <%--
                -function:get cpu temperature
                -method:(read /sys/class/thermal/thermal_zone0/temp)
                -calculation:
                    actual temperature = number_you_read / 1000
            --%>
            <%
                FileReader fr=new FileReader("/sys/class/thermal/thermal_zone0/temp");
                BufferedReader br=new BufferedReader(fr);
                String s=br.readLine();
                int temp = (Integer.parseInt(s))/1000;
                fr.close();
                br.close();
            %>                
    <%--statebar info end--%>

    结束

    转载于:https://my.oschina.net/fantasymaker/blog/227104

    展开全文
  • 树莓派工具包

    2018-03-23 18:01:51
    准备工作: 1.一张8G以上的SD卡(树莓派3使用micro SD卡),最好是高速卡,推荐Class4以上的卡,因为卡的速度直接影响树莓派的运行速度 ...Swap区为linux的虚拟内存区,主要在物理内存不够用的时候,做缓存用
  • 微机总线地址,物理地址,虚拟地址介绍 1.总线地址: 地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 ...树莓派32位: 1G 949M 2.物理地址: 硬件实际地址或绝对地址 1G 3.虚拟地址: 逻辑地址称为虚拟地址
  • 树莓派IO口驱动

    2021-03-22 18:59:34
    1.地址 (1)总线地址:CPU能够访问内存的范围 现象:装了32位的win7系统,明明内存条8G,可是...翻阅【树莓派博通BCM2835芯片手册】第6章(89页): The GPIO has 41 registers. All accesses are assumed to be 32-bi
  • 1 在做人脸识别的时候,内存不够...1.2 提升虚拟内存 检查你的内存: free -mh 添加你的内存(可能有点久) /home/pi# dd if=/dev/zero of=/tmp/big_swap bs=1M count=1024 然后: du -sh /tmp/big_swa...
  • 问题:由于树莓派内存只有1G,导致安装这些需要编译的大型库时...首先百度将树莓派或者只有1G内存的云服务器的虚拟内存设置为1G pip3 install cv2 报错的话(使用pip3 install opencv-python) 然后根据这篇安装c...
  • 我们在编写驱动程序的时候,IO空间的起始地址是0x3f000000,加上GPIO的偏移量0x2000000,所以GPIO的物理地址应该是从0x3f200000开始的,然后在这个基础上进行Linux系统的MMU内存虚拟化管理,映射到虚拟地址上。...
  • make后出现fatal error:Killed ...解决,调整树莓派虚拟内存 free查看 sudo nano /etc/dphys-swapfile 找到CONF_SWAPSIZE=100, 将100更改为1024 crtl+o crtl+x sudo /etc/init.d/dphys-swapfile restart 重新...
  • 2019踩坑无数含泪写下最新教程系列(一)树莓派dlib环境的搭建 安装前的准备工作 1.扩大虚拟内存 ...即是把虚拟内存从100M改为1G,然后重启虚拟内存相关服务: $ sudo /etc/init.d/dphys-swapfile ...
  • 树莓派LED驱动编写

    千次阅读 2017-08-08 23:50:46
    我们在编写驱动程序的时候,IO空间的起始地址是0x3f000000,加上GPIO的偏移量0x2000000,所以GPIO的物理地址应该是从0x3f200000开始的,然后在这个基础上进行Linux系统的MMU内存虚拟化管理,映射到虚拟地址上。...
  • 树莓派编译opencv 4.10 遇到的一些坑

    千次阅读 2019-07-29 14:48:10
    增加2G的虚拟内存,笔者不增加虚拟内存的情况下,编译到18%的界面卡死了 https://blog.csdn.net/wxz3wxz/article/details/70237302 源码下载地址: https://github.com/opencv/openc...
  • youtube上有个在树莓派上装liberealsense的视频教程,我觉得挺棒的,也教了怎么弄虚拟内存、 还告诉了一个VNC这个工具我感觉挺有用的,这样我就不需要买什么屏幕了。 ......
  • 关于在树莓派3b+上安装tensorflow

    千次阅读 2019-02-01 12:21:56
    tensorflow编译出错的(加虚拟内存,改部分源码)。总之一句话,你编译装是装不上的!会卡死,树莓派计算能力太差,内存有限,导致编译几乎不可能成功,所以。。。。。。。。pip install tensorflow吧,骚年,这个...
  • 由于后续在树莓派 3 上需要编译一些大型的程序和运行复杂的 SLAM 算法,默认的物理内存1GB是不够用的,常常造成卡机死机等现象,这里需要添加 SWAP 扩展空间,其实就是当系统内存不足时会用硬盘上 SWAP分区作为虚拟...
  • Swap分区是Linux系统在磁盘上的一个特殊用途的分区(类似windows系统的虚拟内存)。当系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长...
  • 目录总线地址物理地址虚拟地址BCM2835手册GPIO章节寄存器代码编写底层驱动上层应用代码烧写过程 总线地址 32位的win7为什么只能识别4g的内存 即使装了8g的内存条。64位才可以识别8g。2的32次方bit bit->kbit->...
  • 设置虚拟内存 sudo mousepad /etc/dphys-swapfile sudo /etc/init.d/dphys-swapfile restart 改为固定的2048或者干脆使用动态分配的大小,重启 安装依赖包 sudo apt-get update && sudo apt-get upgrade &...
  • 上回我们安装了OpenCV 4.4,相信对源码编译库文件有了一定的了解,这篇我们进一步在树莓派上编译并安装 Pytorch 的最新版本。 文章目录前言PyTorch 1.6 的新特性增加交换内存(可选)1. 修改配置文件PyTorch 安装...
  • 使用树莓派+python+Opencv+face_confignition来实现一个人脸识别系统。...2.配置python虚拟环境 3.安装opencv库 4.安装face_confignition库 5.安装Rpi.gpio库 6.为系统分配动态内存 7.人脸识别程序代码与执行 ...
  • Linux内核中,又三种地址:总线地址、物理地址和虚拟地址。        总线地址: 一种计算机总线,CPU或者有DMA能力的单元中的内存组件或者物理地址在总线上有相对应的地址。比如...
  • linux地址的概念 地址总线:是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。一个 16位元 宽度的位址总线到达 2 的 16 次方 = 65536 = 64 ...虚拟地址:程序所操作地
  • 本章从内存的物理特性出发,深入内存管理的细节,着重介绍了虚拟内存和内存分页的概念。 1.内存: 简单地说,内存就是一个数据货架。内存有一个最小的存储单位,大多数都是一个字节。内存用内存地址(Memory Address...
  • bazel 交叉编译tensorflow

    千次阅读 2019-01-07 12:42:27
    树莓派上安装tensorflow 源码编译安装bazel ...由于树莓派运行内存较小,只有1G,所以我们先增加虚拟内存 First, put insert your USB drive, and find the /dev/XXX path for the device. As an example, my ...
  • 1.总线地址: 地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。...查看树莓派
  • 一. 初衷 先说说自己搭建VPN的初衷,作为一个社畜在上海栖息之地是一间合租...因为日常开发学习过程中不免需要安装一些中间件应用,阿里云上可怜的2G内存显然是不允许我这样的操作。没办法我只能将大部分应用部署在家.
  • 明白了这个你再看这里面的命令就清楚多了,就知道为什么这里用nano 别人用...在弄树莓派虚拟内存的时候。 https://ardupilot.org/dev/docs/ros-vio-tracking-camera.html#ros-vio-tracking-camera ...
  • 修改linux swap交换区大小

    千次阅读 2018-03-14 11:57:06
    swap交换区是linux的虚拟内存技术,为了有效的提高物理内存的利用率,会在硬盘开辟一块空间用处堆放不经常使用的内存数据。而有时候虚拟内存满了会导致部分程序卡死(虽然不至于系统崩溃。)## 修改交换区的方法 ##...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

树莓派虚拟内存