小蜜蜂花卉李天玉 發表於 2019-5-21 09:00:00

Ubuntu安装MDK

<h1 id="1-环境部署">1 环境部署</h1>
<ul class="contains-task-list">
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"><label> Ubuntu 18.04</label></li>
<li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"><label> Wine 3.0.4</label></li>
</ul>
<h2 id="10-查看cpu信息">1.0 查看CPU信息</h2>
<pre><code>lscpu
</code></pre>
<table>
<thead>
<tr>
<th>序号</th>
<th>属性</th>
<th style="text-align: left">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>架构</td>
<td style="text-align: left">x86_64</td>
</tr>
<tr>
<td>2</td>
<td>CPU 运行模式</td>
<td style="text-align: left">32-bit, 64-bit</td>
</tr>
<tr>
<td>3</td>
<td>字节序</td>
<td style="text-align: left">Little Endian</td>
</tr>
<tr>
<td>4</td>
<td>CPU</td>
<td style="text-align: left">4</td>
</tr>
<tr>
<td>5</td>
<td>在线 CPU 列表</td>
<td style="text-align: left">0-3</td>
</tr>
<tr>
<td>6</td>
<td>每个核的线程数</td>
<td style="text-align: left">1</td>
</tr>
<tr>
<td>7</td>
<td>每个座的核数</td>
<td style="text-align: left">4</td>
</tr>
<tr>
<td>8</td>
<td>座</td>
<td style="text-align: left">1</td>
</tr>
<tr>
<td>9</td>
<td>NUMA 节点</td>
<td style="text-align: left">1</td>
</tr>
<tr>
<td>10</td>
<td>厂商 ID</td>
<td style="text-align: left">GenuineIntel</td>
</tr>
<tr>
<td>11</td>
<td>CPU 系列</td>
<td style="text-align: left">6</td>
</tr>
<tr>
<td>13</td>
<td>型号</td>
<td style="text-align: left">158</td>
</tr>
<tr>
<td>14</td>
<td>型号名称</td>
<td style="text-align: left">Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz</td>
</tr>
<tr>
<td>15</td>
<td>步进</td>
<td style="text-align: left">9</td>
</tr>
<tr>
<td>16</td>
<td>CPU MHz</td>
<td style="text-align: left">2748.422</td>
</tr>
<tr>
<td>17</td>
<td>CPU 最大 MHz</td>
<td style="text-align: left">3500.0000</td>
</tr>
<tr>
<td>18</td>
<td>CPU 最小 MHz</td>
<td style="text-align: left">800.0000</td>
</tr>
<tr>
<td>19</td>
<td>BogoMIPS</td>
<td style="text-align: left">6000.00</td>
</tr>
<tr>
<td>20</td>
<td>虚拟化</td>
<td style="text-align: left">VT-x</td>
</tr>
<tr>
<td>21</td>
<td>L1d 缓存</td>
<td style="text-align: left">32K</td>
</tr>
<tr>
<td>22</td>
<td>L1i 缓存</td>
<td style="text-align: left">32K</td>
</tr>
<tr>
<td>23</td>
<td>L2 缓存</td>
<td style="text-align: left">256K</td>
</tr>
<tr>
<td>24</td>
<td>L3 缓存</td>
<td style="text-align: left">6144K</td>
</tr>
<tr>
<td>25</td>
<td>NUMA 节点0 CPU</td>
<td style="text-align: left">0-3</td>
</tr>
</tbody>
</table>
<h2 id="12-wine环境">1.2 Wine环境</h2>
<pre><code># 添加i386架构
sudo dpkg --add-architecture i386
# 安装64位wine
sudo apt install wine64
# 添加wineHQ签名密钥
wget -qO- https://dl.winehq.org/wine-builds/Release.key | sudo apt-key add -
# 添加存储库
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/ubuntu/ artful main'
</code></pre>
<h1 id="2-安装mdk">2 “安装”MDK</h1>
<p>(1)将Win下安装的MDK文件,打包压缩,传送到Ubuntn;<br>
(2)安装Pack,将MDK文件夹Pack中的.Download下载的pack文件离线安装;<br>
(3)Ubuntu显示隐藏文件Ctrl+H;<br>
(4)μVision⇒ Project⇒ Manage⇒ Pack Installer⇒ File⇒ Import⇒ Keil.STM32F1xx_DFP.1.0.5.pdsc;<br>
(5)重启μVision即可新建工程;</p>
<h1 id="3-问题">3 问题</h1>
<h2 id="31-不能编译">3.1 不能编译</h2>
<pre><code>--- Error: failed to execute '\home\xdq\install\MD\Kmdk514\core\ARM\ARMCC\Bin\ArmCC'
</code></pre>
<p>没有指定ARMCC<br>
依次打开:<br>
Project--&gt;Manage--&gt;Compoments,Books--&gt;Folders/Extensions</p>
<div align="center"><img src="https://img2018.cnblogs.com/blog/1470483/201905/1470483-20190521085639764-1134030165.jpg"></div>
<center>图3.1 设置路径</center>
<h2 id="32-编译错误">3.2 编译错误</h2>
<p>【Ubuntu源文件修改】</p>
<pre><code>error You are building kernel with non-retpoline compiler, please update your compiler
</code></pre>
<pre><code>make -C /lib/modules/4.15.0-50-generic/buildM=/home/xdq/install/Drivers/CH341SER_LINUX
make: 进入目录“/usr/src/linux-headers-4.15.0-50-generic”
arch/x86/Makefile:252: *** 分隔符缺失 (你大概想用 TAB,而不是八个空格)。 停止。
make: 离开目录“/usr/src/linux-headers-4.15.0-50-generic”
Makefile:5: recipe for target 'default' failed
make: *** Error 2
</code></pre>
<p>【进入】</p>
<pre><code>/usr/src/$(uname -r)/arch/x86
</code></pre>
<p>【打补丁】</p>
<pre><code>diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index f5d7f41..75ef499 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,9 +220,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables

# Avoid indirect branches in kernel to deal with Spectre
ifdef CONFIG_RETPOLINE
-ifeq ($(RETPOLINE_CFLAGS),)
-$(error You are building kernel with non-retpoline compiler, please update your compiler.)
-endif
   KBUILD_CFLAGS += $(RETPOLINE_CFLAGS)
endif

@@ -307,6 +304,13 @@ ifndef CC_HAVE_ASM_GOTO
        @echo Compiler lacks asm-goto support.
        @exit 1
endif
+ifdef CONFIG_RETPOLINE
+ifeq ($(RETPOLINE_CFLAGS),)
+        @echo "You are building kernel with non-retpoline compiler." &gt;&amp;2
+        @echo "Please update your compiler." &gt;&amp;2
+        @false
+endif
+endif
</code></pre>
<p>【下载文件修改】</p>
<pre><code>make -C /lib/modules/4.15.0-50-generic/buildM=/home/xdq/install/Drivers/CH341SER_LINUX
make: 进入目录“/usr/src/linux-headers-4.15.0-50-generic”
CC /home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c: 在函数‘ch34x_close’中:
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:591:2: 错误:未知的类型名‘wait_queue_t’
wait_queue_t wait;
^~~~~~~~~~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:591:15: 警告:未使用的变量‘wait’ [-Wunused-variable]
wait_queue_t wait;
               ^~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:590:7: 警告:未使用的变量‘timeout’ [-Wunused-variable]
long timeout;
       ^~~~~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:589:6: 警告:未使用的变量‘bps’ [-Wunused-variable]
int bps;
      ^~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c: 在函数‘wait_modem_info’中:
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:797:7: 错误:隐式声明函数‘signal_pending’ [-Werror=implicit-function-declaration]
   if( signal_pending(current) )
       ^~~~~~~~~~~~~~
cc1:有些警告被当作是错误
scripts/Makefile.build:337: recipe for target '/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o' failed
make: *** Error 1
Makefile:1552: recipe for target '_module_/home/xdq/install/Drivers/CH341SER_LINUX' failed
make: *** Error 2
make: 离开目录“/usr/src/linux-headers-4.15.0-50-generic”
Makefile:5: recipe for target 'default' failed
make: *** Error 2
</code></pre>
<p>注释或删除:wait_queue_t,long timeout,int bps<br>
添加头文件: #include &lt;linux/sched/signal.h&gt;</p>
<hr>
<h2 id="参考文献1-httpsgitkernelorgpubscmlinuxkernelgittiptipgitcommitid25896d073d8a0403b07e6dec56f58e6c336782072-httpsblogcsdnnetnuttinyarticledetails798429003-httpsblogcsdnnetjazzsoldierarticledetails701704664-httpwwwwchcndownloadch341ser_linux_ziphtml">[参考文献]<br>
1 https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=25896d073d8a0403b07e6dec56f58e6c33678207<br>
2 https://blog.csdn.net/nuttiny/article/details/79842900<br>
3 https://blog.csdn.net/jazzsoldier/article/details/70170466<br>
4 http://www.wch.cn/download/CH341SER_LINUX_ZIP.html</h2><br><br>
来源:https://www.cnblogs.com/xdq101/p/10897789.html
頁: [1]
查看完整版本: Ubuntu安装MDK