智龙开发板搭建llsp环境

2023-11-24 04:30

本文主要是介绍智龙开发板搭建llsp环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智龙开发板搭建llsp(linux+lighttpd+sqlite3+php)环境

1. 准备

1. 智龙开发板V3
2. 软件编译环境:VirtualBox6+CentOS6.10-i386.minimal
3. 交叉编译器: gcc-4.3-ls232.tar.gz
4. 串口交互环境:Fedora29 minicom
5. 文件传输工具:tftp
配置参数
CPU龙芯1C300B
内存32M内存
NandFlash128M

说明: 安装前请确保电脑中存在gcc/g++编译器,否则编译过程中会报错,执行yum install gcc gcc-c++ -y 进行安装。

2. 串口连接开发板

操作机器为Fedora29,自带usb转串口硬件调试工具 minicom ,若没有安装,可以使用 sudo dnf install minicom 进行安装。

操作步骤

1. 按照说明书,连接好TTL三针接口,将USB端插入电脑

从左到右 白-绿-黑 线,插入开发板电源口对面的只有三个针头的接口上。

连线

2. 操作机器上确定设备名

USB插入电脑后,我们需要确定开发板的设备名称,好对这个设备进行操作

在终端下输入 ll /dev/tty* 用以查看所有终端设备,可知 ttyUSB0为我们的开发板设备名

开发板设备名

3. 操作机器上输入 sudo minicom -s 配置minicom

得知设备名后,我们需要配置minicom,配置过程如下

输入 sudo minicom -s 进入minicom配置下,选择第三项 Serial port setup

配置minicom

直接按字母可对选项进行操作,按下字母A,修改 Serial Device 的值为开发板的设备名,按下F,G,将软流控(Software Flow Control)和硬流控(Hardware Flow Control)设为No。配置如下:

配置minicom

配置完后,选择 Save setup as dfl 保存配置为默认。再Exit退出。

保存配置退出

4. 利用minicom进入开发板系统,操作开发板

在选择Exit退出后,会来到此界面,按下 ctrl+c 即可进入开发板的系统。

进入minicom进入开发板

5. 连接网线,指定IP地址

在连接好网线后,使用如下命令,手动指定网络IP地址,否则无法上网。

ifconfig eth0 IP-address

譬如我所在的网络段是 192.168.0.X,我可以为我的开发板指定IP地址为 192.168.0.111.只要IP地址不冲突就行。

ifconfig eth0 192.168.0.111

网络配置

2. 配置编译环境

下载孙冬梅老师提供的gcc编译器,点击下载。下载后,将其上传CentOS服务器,并配置环境变量。

PS: 不会安装CentOS6的 看这里

操作步骤

1. 配置GCC环境变量

我们的CentOS主机IP地址为 192.168.0.104,在我们的本机上使用scp命令来上传我们下载下来的GCC文件。

scp gcc-4.3-ls232.tar.gz root@192.168.0.104:/root

上传文件到centos

表示上传当前目录下的 gcc-4.3-ls232.tar.gz 文件到远端的 192.168.0.104 机器上,使用的是远端的root用户的权限来上传,上传的位置是远端的/root目录下。

在服务端,将我们上传的文件解压缩,到/usr/local 下

tar zvxf gcc-4.3-ls232.tar.gz -C /usr/local

配置环境变量 .bashrc 文件

vi ~/.bashrc

在文件末尾添加上

export PATH=$PATH:/usr/local/gcc-4.3-ls232/bin

使用 source 命令,让配置生效

source ~/.bashrc

在终端下输入 mipsel-linux-gcc -v 出现如下提示则配置成功

解压gcc修改环境变量输出版本

2. 安装tftp服务

tftp服务用于将编译好的软件发送给开发板。安装后需要关闭防火墙,或者放行tftp服务端口69,否则会导致文件无法传送。tftp配置教程

安装tftp-server服务

yum install tftp-server

配置tftp,修改文件 /etc/xinetd.d/tftp ,将其中的disable=yes改为disable=no,将server_args 参数改为 -s /tftp -c 其中的 /tftp表示tftp服务的共享目录,可以自定义,需要确保 /tftp 存在。

service tftp
{socket_type             = dgramprotocol                = udpwait                    = yesuser                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /tftp -c   //根目录下建立 tftp 文件夹disable                 = no   //改为noper_source              = 11cps                     = 100 2flags                   = IPv4
}

启动服务

/etc/init.d/xinetd start

查看tftp服务是否启动成功,执行如下命令,输出不为空则表示启动成功

netstat -a | grep tftp

关闭防火墙

/etc/init.d/iptables stop setenforce 0

tftp配置

3. 编译软件

在整个过程中,我们需要用到的包清单如下

  1. sqlite-autoconf-3260000 下载sqlite3
  2. Lighttpd1.4.53 下载lighttpd
  3. PHP5.6.40 下载PHP

编译SQLite3

解压sqlite-autoconf-3260000.tar.gz(到发表该文截至的最新版本),并进入文件夹后执行

1. 选定编译特性,检查编译环境
./configure --host=mipsel-linux --prefix=/usr/local/sqlite3
2. 编译安装
make && make install

编译sqlite3编译成功

说明: --host 指定软件运行环境 --prefix指定源码交叉编译后生成文件的路径. 可以参考这篇文章

编译Lighttpd

解压lighttpd-1.4.53.tar.gz(到发表该文截至的最新版本),进入文件夹后执行

1. 配置交叉编译的环境变量
CC=mipsel-linux-gcc AR=mipsel-linux-ar LD=mipsel-linux-ld RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip 
2. 编检lighttpd
./configure --prefix=/usr/local/lighttpd --host=mipsel-linux --build=i686-pc-linux --disable-FEATURE --enable-shared --disable-static --disable-lfs --disable-ipv6 --without-PACKAGE --without-valgrind --without-openssl --without-kerberos5 --without-pcre --without-zlib --without-bzip2 --without-lua
3. 编译安装
make && make install

编译lighttpd编译成功

说明: 可以参考这篇文章

编译PHP

编译安装PHP之前,执行下面的命令,将依赖的包安装。

yum install sqlite-devel libxml2 libxml2-devel

按步骤执行下面的命令

# 指定编译器,前面已经设置了,这里可以不用再次指定
CC=mipsel-linux-gcc./configure --host=mipsel-linux --prefix=/usr/local/php --disable-all --enable-pdo --with-sqlite3=/usr/local/sqlite3 --with-pdo-sqlite=shared --without-iconv --without-zlib --with-libxml-dir=/usr/local/libxml2 --enable-sockets --with-config-file-path=/usr/local/php/lib --enable-mbstring --with-libxml-dir --enable-jsonmake && make install

编译php编译成功

提示: 开发板存储空间有限,文件过大时,使用 mipsel-linux-strip binary-file-name 精简命令。详见博客

4. 打包上传至开发板

我们编译好的文件全部都在 /usr/local 目录下,我们将他们打包成一个文件,并将其移动到我们tftp服务的共享目录 /tftp

tar cvzf source.tar.gz /usr/local/php /usr/local/sqlite3 /usr/local/lighttpdmv source.tar.gz /tftp

打包文件

在开启了tftp-server后,确保服务端的防火墙关闭。执行如下命令,即可从tftp-server指定的目录下,下载指定的文件

在开发板中,使用如下命令,下载文件

tftp -g -r filename tftp-server的IP地址

譬如从tftp服务端获取旗下的php.tar.gz文件,服务端的ip为192.168.0.104

tftp -g -r php.tar.gz 192.168.0.104

tftp下载文件

说明: 理论上,编译过后的包是可以在智龙开发板上通用的,我已将其打包上传,供大家测试。点击 这里下载;打包之前, 记得将php.ini文件拷贝到php/lib下面,将lighttpd源码包中的doc/config下的文件也拷贝到lighttpd/config下。

5. 环境配置工作

好啦,包都已经下载完毕。我们将包解开,按照习惯,将内容移动到 /usr/local 下,后将二进制文件链接/usr/bin 下,so库文件链接到 /lib 下。若空间有限,最好分包上传后在逐个配置。

1. 配置SQLite3

解压文件后,我们的sqlite存在于 /usr/local/sqlite3 下,我们所需要处理的文件是 bin/sqlite3 和 lib/libsqlite3.so.0.8.6 。执行如下操作,完成配置

ln -sf /usr/local/sqlite3/bin/sqlite3 /usr/binln -sf /usr/local/sqlite3/lib/libsqlite3.so.0.8.6 /lib/libsqlite3.so.0

配置sqlite

2. 配置PHP

解压文件后,我们的php存在于 /usr/local/php 下,我们将我们的二进制文件链接到 /usr/bin 下。

ln -sf /usr/local/php/bin/php /usr/bin

配置php

3. 配置Lighttpd

解压文件后,我们的lihttpd存在于 /usr/local/lighttpd 下,我们将我们的二进制文件链接到 /usr/bin 下。

ln -sf /usr/local/lighttpd/bin/lighttpd /usr/bin

而后,我们配置lighttpd,让其可以正常运行。首先,手动创建如下文件夹:cache、cgi-bin、config、log、sockets、upload、vhosts、htdocs。而后将我们lighttpd源码包中的 doc/config 目录下的 config.d、lighttpd.conf和modules.conf复制到我们创建的config文件夹里面。而后对其配置文件进行修改。

创建文件和配置文件

首先,修改config/lighttpd.conf 该文件为启动lighttpd 的配置文件。修改规则如下。

# 将16行至20行修改为如下所示: 
var.log_root    = "/usr/local/lighttpd/log"
var.server_root = "/usr/local/lighttpd"
var.state_dir   = "/usr/local/lighttpd"
var.home_dir    = "/usr/local/lighttpd"
var.conf_dir    = "/usr/local/lighttpd/config"# 将61行修改如下
var.cache_dir   = server_root + "/cache"# 将93行修改如下
server.use-ipv6 = "disable"#将104,105,152,158,191行注释掉:
#server.username  = "lighttpd"
#server.groupname = "lighttpd"
#include "conf.d/access_log.conf"
#include "conf.d/debug.conf"
#server.network-backend = "linux-sendfile"# 根据系统资源设置207行和254行的数值,如下
server.max-fds = 256
server.max-connections = 128# 将343至345行注释掉:
#$HTTP["url"] =~ ".pdf$" {
#  server.range-requests = "disable"
#}# 将408行修改:
server.upload-dirs = ( "/usr/local/lighttpd/upload" )

修改完config/lighttpd.conf 后,修改conf/modules.conf 文件。

# 找到43行,按照格式插入如下内容:
"mod_alias", # 使能fastcgi模块和cgi模块,将139行和144行的注释符去掉
include "conf.d/fastcgi.conf"
include "conf.d/cgi.conf"

而后修改config/conf.d/fastcgi.conf文件

# 在第九行附近的 server.modules += ( "mod_fastcgi" ) 后面添加如下内容
fastcgi.server = (".php" => ("localhost" => ("socket" => "/usr/local/lighttpd.player.server.socket","bin-path" => "/usr/local/php/bin/php-cgi","max-procs" => 1,"check-local" => "disable"))
)

修改config/conf.d/dirlisting.conf文件

# 将24行的注释掉,否则启动服务报错
#dir-listing.exclude       =  ( "~$" )

配置完毕,启动lighttpd服务(需要手动定义配置文件位置)。

lighttpd -f /usr/local/lighttpd/config/lighttpd.conf

我们的根目录在 /usr/local/lighttpd/htdocs下,我们在下面创建一个静态文件index.html和test.php,用来测试连通性和php服务的可用性

# index.html
<html><head><title>lighttpd test</title></head><body><p>lighttpd test for loongnix</p>     <hr><p>hello word!</p></body>
</html># test.php<?php
phpinfo();
?>

测试连通测试php

大功告成

转载于:https://my.oschina.net/xuthus/blog/3008207

这篇关于智龙开发板搭建llsp环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/421243

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源