欢迎各位大佬的加入,oE社区越来越壮大
目前openEuler riscv sig组,重点做的事情是openEuler 在riscv64架构下的构建,目前引入了4100+个包,在8.16日之前,成功构建了近1900+个包,目前openEuler riscv sig正在努力解决包构建错误,让更多的包能够成功的构建纳入系统中。
之前9月重点目标是:
1、成功构建3000个包;
2、bishengJDK支持;
3、图形界面支持;
4、在D1上运行起openEuler;
欢迎各位大佬的加入,oE社区越来越壮大
目前openEuler riscv sig组,重点做的事情是openEuler 在riscv64架构下的构建,目前引入了4100+个包,在8.16日之前,成功构建了近1900+个包,目前openEuler riscv sig正在努力解决包构建错误,让更多的包能够成功的构建纳入系统中。
之前9月重点目标是:
1、成功构建3000个包;
2、bishengJDK支持;
3、图形界面支持;
4、在D1上运行起openEuler;
项目 (五): D1哪吒开发板点亮OLED诺基亚N808手机mipi dsi 1-lane 显示屏
参考1: 请问D1哪吒开发板能点亮诺基亚mipi dsi 1-lane 显示屏吗?
https://bbs.aw-ol.com/topic/298
参考2: 请问这个树莓派MIPI DSI 显示屏是不是用 接口芯片转的?
https://bbs.aw-ol.com/topic/263/
参考3:使用D1驱动树莓派DSI屏幕
https://bbs.aw-ol.com/topic/311/awol/10
① 开源原理图与PCB
② 开源C源码与dts文件
③ 需正常显示,其他网友可以仿制实现
④ 本站提供哪吒开发板一块,OLED显示屏三片
⑤⑥⑦⑧⑨ 要求与一楼相同
刚翻了一下 D1 Datasheet,并没有raw nand接口,只有spi nand 接口,这个驱动感觉是别的sdk直接复制过来了的。
openEuler for D1 (RISC-V) 的镜像进行了更新,目前第三版使能了 wifi
和 HDMI 接口(前两版都只能通过调试USB看输出)
下载地址:
https://mirror.iscas.ac.cn/plct/openEuler-D1-wifi-hdmi-20210817.img.bz2
用户名/密码:
root
openEuler12#$
目前只有命令行,图形还没有。希望9月1日之前能出第四版,能把图形界面跑起来。
感谢王翔/merle同学的努力
是否能找到
~/.ssh/config
文件, 文件里面是否有类似的配置:
Host sdk.allwinnertech.com
IdentityFile ~/.ssh/sdk.allwinnertech.com.private
User whycan
此文件是否只是本人可读:
$ ls -l ~/.ssh/sdk.allwinnertech.com.private
-rw------- 1 cube cube 1831 Apr 26 21:46 /home/whycan/.ssh/sdk.allwinnertech.com.private
@haoxuan-cui 在 安装repo失败,输密码后一直提示Permission denied 中说:
haoxuan.cui
haoxuan.cui
haoxuancui
到底是有点, 还是没点呢?
@cube_work
登录账号密码:
root
openEuler12#$
你试一试.
各位亲爱的小伙伴,openEuler第二版可以在哪吒D1开发板运行了,WIFI功能正常使用,欢迎下载测试。
D1烧录镜像: https://mirror.iscas.ac.cn/plct/openEuler-D1-wifi-enabled-20210810.img.bz2
@whycan 在 【走过路过的朋友不要错过】全志在线(bbs.aw-ol.com)做项目赠送哪吒开发板活动 中说:
项目 (二): 4G热点 & 简易 NAS
项目 (三): 简易个人信息提醒器感谢楼上两位小伙伴,这两个项目已认领,晚点发快递。
亲爱的两位小伙伴,快递已发出, 请查收.
项目 (二): 4G热点 & 简易 NAS
项目 (三): 简易个人信息提醒器
感谢楼上两位小伙伴,这两个项目已认领,晚点发快递。
项目 (四): 简易写字机或激光雕刻机控制面板
目标: 基于D1哪吒开发板/显示G代码刀路/下载G代码/启停控制
要求:
① 开源并在本站发帖详细记录过程,其他网友可以仿制实现
② 可通过串口/USB 控制写字机/激光雕刻机动作
③ 可解析G代码, 并显示在屏幕。
④ 可通过G代码文件与写字机/激光机通讯,写出/打出预期的图案。
⑤⑥⑦⑧⑨ 要求与一楼相同
项目 (三): 简易个人信息提醒器
目标: 基于D1哪吒开发板/RTC时间/蜂鸣器/人体红外感应/编辑提醒内容
要求:
① 开源并在本站发帖详细记录过程,其他网友可以仿制实现
② 接RTC时钟模块(如PCF8563)同步时间/或网络NTP服务器同步时间,接蜂鸣器模块提醒。
③ 当有人靠近的时候,系统人体红外感应器电平变化和当前时间,蜂鸣器鸣叫1秒,点亮HDMI屏幕,并在屏幕上面显示当前时间段的提醒内容。
④ 可以通过网页编辑提醒内容 / 或用鼠标键盘等其他输入设备本机编辑提醒内容。
⑤⑥⑦⑧⑨ 要求与一楼相同
项目 (二): 4G热点 & 简易 NAS
**目标:**基于D1哪吒开发板/4G联网/支持WIFI热点&站点/支持USB移动硬盘
要求:
① 开源并在本站发帖详细记录过程,其他网友可以仿制实现
② 接4G模块(如合宙AIR724开发板)上网, WIFI 作为热点, 手机可以通过此热点共享上网.
③ 支持USB移动硬盘. WIFI可以连接其他路由器, 哪吒系统运行SAMBA服务器, 手机或者电脑可以共享 TF卡/移动硬盘 的文件.
⑤⑥⑦⑧⑨ 要求与一楼相同
本站下载: xfel_msvc2017_project_20210729.7z ( 2021-07-29 更新,带git仓库, xboot说支持F133 DDR2 初始化, 我还未测试.)
可执行文件下载: xfel.exe
全志在线(bbs.aw-ol.com)D1 做项目赠送哪吒开发板活动
项目 (一): 哪吒音乐播放器
**目标:**基于D1开发板/有UI /旋转编码器/按键/红外遥控器的本地音乐播放器
要求:
① 本站已发帖(主题或跟帖都可以)15个以上,开源并在本站发帖详细记录过程,其他网友可以仿制实现
② UI不限, uC/GUI, EMWIN, LVGL, AWTK, Qt等都可以。
③ 需要支持按键/旋转编码器/红外遥控器/USB鼠标键盘 输入。
④ UI上显示曲目列表,可以通过上面的输入设备选择TF卡等媒体音乐文件播放歌曲,播放时显示进度条,可以直接通过点击进度条任意位置跳转到该位置播放。
⑤ 项目完成后,请发新帖描述步骤,并提供源码和烧录固件,以及图片视频等。
⑥ 回帖报名,没有报名要求,只需通过审核即可。
⑦ 有空闲时间的大佬,在校大学生优先。
⑧ 限时21天,特殊情况可以推迟1星期,超时则为退出。 (没有压力,就没有动力)
⑨ 开发板采用无押金借用方式。
如项目失败,退还开发板。
如项目顺利完成,开发板和配件不用退还,自行处置;
其他:
不需要像产品一样长时间稳定运行,只要求开机能正常运行十五分钟,其他网友能按步骤复制即可。
有兴趣的朋友可以跟帖报名,报名截止日期 2021-09-15。
@whycan 声波通讯要怎么做?有示例在公板上试一下吗?
要配合算法才行,目前不知道有没有开源参考。360摄像头app可以参考,他就是声波通讯配网。另外可以用蓝牙ble配网。
ifconfig wlan0 promisc #使能混杂模式
我用这个命令在R329公板上开启混杂模式,然后手机端用AirKissDebug apk发送无线ap的用户名和密码,怎么R329公板无法连接我发送的wifi ap?
这个板子没有屏幕,如果做成智能语音产品的话要连接wifi,咱这边有什么方案吗?
可以声波通讯发送密码.
@mwang 在 【免签NDA直接下】D1 Tina SDK v1.0正式释放!深入了解RISC-V的每一个DNA! 中说:
@mwang 打扰了,已经解决了
请问怎么解决的呢,可以给后面的小伙伴参考参考呢。
@elliott 在 请问淘宝上面的cklink可以调试d1吗? 中说:
想问下,有可能通过板子上的GPIO引脚来接上这个CKLINK调试器吗
只能接有JTAG功能复用的引脚,并且调试前该组引脚已经切换到JTAG复用状态。
@mangogeek 在 烧录D1固件到TF卡时出现错误 中说:
我这里intel上用phoenixcard也是怪怪的。
暂时改用 https://sourceforge.net/projects/win32diskimager/
道理我都懂, 可是phoenixcard和win32diskimage这两货尿不到一壶啊。
推荐用广州大彩,别问我为什么,因为他是用全志方案
全志 RISCV 指令集 D1 开发板 哪吒 资料合集
https://whycan.com/t_6440.html
由于本站还不能传非图片文件,我整理一份比较完整的在上面的网站。
韦老师可以参考一下这个帖子:
xfel运行D1的boot0
https://whycan.com/t_6638.html#p64488
全志sdk工具把sys_config.fex 转成二进制存到了
boot0*.fex uboot*.fex 的开头位置。
$ make
>>> opensbi 1c8ffc826a202ae73c99236c9620442ebe54c9c5 Building
PATH="/opt/D1/neza-d1-buildroot/output/host/bin:/opt/D1/neza-d1-buildroot/output/host/sbin:/usr/local/gnu-mcu-eclipse/riscv-none-gcc/7.2.0-4-20180606-1631/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" CROSS_COMPILE=/opt/D1/neza-d1-buildroot/output/host/bin/riscv64-buildroot-linux-gnu- PLATFORM=thead/c910 PLATFORM_RISCV_ISA=rv64gcxthead /usr/bin/make -j9 -C /opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5
AS-DEP platform/thead/c910/firmware/fw_jump.dep
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/firmware/fw_jump.S:103:2: error: #error "Must define FW_JUMP_ADDR"
103 | #error "Must define FW_JUMP_ADDR"
| ^~~~~
CLEAN (standby)
AR lib/libsbi.a
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
AR lib/libsbiutils.a
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
CC platform/thead/c910/standby-normal/loadelf.o
CC (standby)main.c
CC platform/thead/c910/sunxi_platform.o
CC platform/thead/c910/opensbi_head.o
CC platform/thead/c910/sunxi_idle.o
AS platform/thead/c910/sunxi_cpuidle.o
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/opensbi_head.c:32:3: error: ‘FW_TEXT_START’ undeclared here (not in a function)
32 | FW_TEXT_START
| ^~~~~~~~~~~~~
CPP platform/thead/c910/firmware/fw_dynamic.elf.ld
In file included from /opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/include/sbi/sbi_scratch.h:13,
from /opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/include/sbi/sbi_platform.h:44,
from /opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_platform.c:9:
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_platform.c: In function ‘sbi_boot_other_core’:
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_platform.c:226:23: error: ‘FW_TEXT_START’ undeclared (first use in this function)
226 | csr_write(CSR_MRVBR, FW_TEXT_START);
| ^~~~~~~~~~~~~
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/include/sbi/riscv_asm.h:108:39: note: in definition of macro ‘csr_write’
108 | unsigned long __v = (unsigned long)(val); \
| ^~~
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_platform.c:226:23: note: each undeclared identifier is reported only once for each function it appears in
226 | csr_write(CSR_MRVBR, FW_TEXT_START);
| ^~~~~~~~~~~~~
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/include/sbi/riscv_asm.h:108:39: note: in definition of macro ‘csr_write’
108 | unsigned long __v = (unsigned long)(val); \
| ^~~
Makefile:315: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/opensbi_head.o' failed
make[2]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/opensbi_head.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Makefile:315: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/sunxi_platform.o' failed
make[2]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/sunxi_platform.o] Error 1
AS platform/thead/c910/firmware/fw_dynamic.o
AS platform/thead/c910/firmware/fw_jump.o
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/firmware/fw_jump.S:103:2: error: #error "Must define FW_JUMP_ADDR"
103 | #error "Must define FW_JUMP_ADDR"
| ^~~~~
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_cpuidle.S: Makefile:333: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/firmware/fw_jump.o' failed
make[2]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/firmware/fw_jump.o] Error 1
Assembler messages:
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_cpuidle.S:51: Error: unrecognized opcode `dcache.call'
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/sunxi_cpuidle.S:90: Error: unknown CSR `mxstatus'
Makefile:321: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/sunxi_cpuidle.o' failed
make[2]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/sunxi_cpuidle.o] Error 1
CC (standby)dram/dram.c
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/standby-normal/loadelf.c: Assembler messages:
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/standby-normal/loadelf.c:210: Error: unrecognized opcode `dcache.call'
Makefile:315: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/standby-normal/loadelf.o' failed
make[2]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/standby-normal/loadelf.o] Error 1
CC (standby)clk/sun20iw1p1/clk-sun20iw1p1.c
CC (standby)libsrc/mdelay.c
CC (standby)libsrc/stack.c
CC (standby)libsrc/head.c
CC (standby)power/axp2101_power.c
CC (standby)power/axp22_power.c
CC (standby)power/axp_power.c
CC (standby)driver/twi/standby_twi.c
CC (standby)driver/pin/standby_pin.c
CC (standby)driver/clk/standby_clk.c
CC (standby)driver/uart/uart.c
AS (standby)sunxi_standby.S
sunxi_standby.S: Assembler messages:
sunxi_standby.S:44: Error: unrecognized opcode `dcache.call'
sunxi_standby.S:83: Error: unknown CSR `mxstatus'
Makefile:45: recipe for target 'sunxi_standby.o' failed
make[3]: *** [sunxi_standby.o] Error 1
/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/platform/thead/c910/standby-normal/objects.mk:15: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/standby-normal/standby.bin' failed
make[2]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/build/platform/thead/c910/standby-normal/standby.bin] Error 2
package/pkg-generic.mk:247: recipe for target '/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/.stamp_built' failed
make[1]: *** [/opt/D1/neza-d1-buildroot/output/build/opensbi-1c8ffc826a202ae73c99236c9620442ebe54c9c5/.stamp_built] Error 2
Makefile:84: recipe for target '_all' failed
make: *** [_all] Error 2
韦老师,这是什么问题呢?
[首发][史上最详细][纯WIN环境]VSCode搭建Linux Kernel单步调试IDE环境
二、总结提升
以上其实是用了一种叫“查理复用”(Charlieplex)的方法。
为什么叫查理复用?
很简单,因为这个方法来源于美信半导体公司的工程师Charlie Allen。
查理复用是一种能够在驱动LED,特别是驱动大量LED时有效地节约GPIO的方法。
使用该方法,n个GPIO可以驱动 n*(n-1) 个LED,所以:
使用2个GPIO可以驱动2个LED。
使用3个GPIO可以驱动6个LED。
使用4个GPIO可以驱动12个LED。
以此类推。
这种方式能够实现的基础是:
单片机GPIO的三个状态:高电平、低电平、高阻态。
LED具有单向导电性。
查理复用设计的方法:
任意两个GPIO引脚之间串入两个LED,这两个LED为并联,且LED方向相反。
当你想要点亮某个特定的LED时,就将其两端所连接到的GPIO引脚分别设定为高电平和低电平,其它剩余的GPIO引脚设定为高阻态。
前面电动牙刷中6个LED灯的电路,就是这么设计的。
![替代文字]( 图片地址)
1,xWCeXT3ZeWf微 https://m.tb.cn/h.4tzFY0y?sm=de6a71 平头哥 调试器 CPU调试器 下载器 CSKY调试加速器 CKLINK LITE
根据实际情况修改 gcc 路径
CROSS=/opt/D1/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu- make
package/allwinner/wifimanager/files/wpa_supplicant_overlay.conf
disable_scan_offload=1
network={
ssid="whycan"
psk="13800138000"
}
# Allow a few customizations from a config file
test -r /etc/default/dropbear && . /etc/default/dropbear
start() {
DROPBEAR_ARGS="$DROPBEAR_ARGS -R"
# If /etc/dropbear is a symlink to /var/run/dropbear, and
# - the filesystem is RO (i.e. we can not rm the symlink),
# create the directory pointed to by the symlink.
# - the filesystem is RW (i.e. we can rm the symlink),
# replace the symlink with an actual directory
if [ -L /etc/dropbear \
-a "$(readlink /etc/dropbear)" = "/var/run/dropbear" ]
then
if rm -f /etc/dropbear >/dev/null 2>&1; then
mkdir -p /etc/dropbear
else
echo "No persistent location to store SSH host keys. New keys will be"
echo "generated at each boot. Are you sure this is what you want to do?"
mkdir -p "$(readlink /etc/dropbear)"
fi
fi
printf "Starting dropbear sshd: "
umask 077
start-stop-daemon -S -q -p /var/run/dropbear.pid \
--exec /usr/sbin/dropbear -- $DROPBEAR_ARGS
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
stop() {
printf "Stopping dropbear sshd: "
start-stop-daemon -K -q -p /var/run/dropbear.pid
[ $? = 0 ] && echo "OK" || echo "FAIL"
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
把前面编译的 dropbear 复制到 allwinner/d1-nezha/base-files/usr/sbin/
source build/envsetup.sh;lunch d1_nezha-tina;make;pack
#获取IP
udhcpc -i wlan0
#启动ssh服务
/etc/init.d/S51dropbear restart
root@TinaLinux:/# udhcpc -i wlan0
udhcpc: started, v1.27.2
udhcpc: sending discover
udhcpc: sending select for 192.168.43.224
udhcpc: lease of 192.168.43.224 obtained, lease time 3599
udhcpc: ifconfig wlan0 192.168.43.224 netmask 255.255.255.0 broadcast 192.168.43.255
udhcpc: setting default routers: 192.168.43.1
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# /etc/init.d/S51dropbear restart
Stopping dropbear sshd: OK
Starting dropbear sshd: OK
给板子的root设置一个密码 passwd
用 Xshell, mobaxterm, putty, ssh命令行等都可以连接到 192.168.43.224
2021-05-18_181258.png
参考链接:
全志 A33 官方 dragonboard SDK 建立 SSHD 服务器, 电脑通过WIFI连接A33 SSHD服务器 [分享]
http://whycan.com/t_6312.html
@whycan 或者ubuntu 用 sudo apt install gcc-riscv64-linux-gnu 命令安装,
riscv64-linux-gnu-gcc -static 静态链接应用程序就可以跑.
@march prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-gcc
@tuotatianwang 在 如果不按文档走,迟早要翻车,这不melis就翻了 中说:
@whycan 这么长的命令行?这是写了啥?一条命令改变世界?
这就是melis sdk的坑,把ucgui那些c文件放到一个命令行。